看门狗定时器课件教学文案

合集下载

看门狗定时器

看门狗定时器

System Frequency/4
0.27306s
註:System Frequency 爲 480KHz。
總共有三種方法會産生系統重置,如下所示:
• RES 正常操作時由
引腳發生重置
• RES 在暫停模式由
引腳發生重置
• 正常操作時由看門狗定時器超時發生重置
暫停模式中的看門狗定時器超時與其他系統重置狀況不同,因爲看門狗定時器超時會執行
,則
過程中 次執行
都 此還 夠 實現 ″ ″ CLR WDT1 指令 不能清除看門狗定時器,因
是能 産生 WDT 溢出,
系統重
從 置, 而跳出閉環狀態。
3
就 避免 現 當 迴圈後 例 可以
這種情況的出 。 程式進入
, 如:
…… LOOP:
CLR WDT1
…… …… SZ
JMP LOOP
……CLR WDT2
第 句 為 ;在 loop 中執行 一 清除 ″0″ WDT 指令 後 第 句 為 ;在 loop 執行 二 清除 ″0″ WDT 指令
第 夠 若 死迴圈 迴圈 再 ″ ″ 一次執行 CLR WDT1 指令能 清除 WDT, 發生
令必須交換執行才能清除看門狗定時器的內容,否則,看門狗定時器很可能會因爲超時而 將系統重置。
1
HT47R20A-1 看門狗定時器(WDT)使用介紹
″ ″ 15
看門狗溢出時間周期爲 時鐘來源 /2 ,如下表所示。
時鐘來源
看門狗溢出周期
12KHz(WDTCLK)
2.73066s
32KHz(RTC)
1.00000s
……
CLR WDT2
;可以清除看門狗定時器的內容

MICROCHIP WDT

MICROCHIP WDT
WDT 超时值可按公式 9-1 中所示方法计算。表 9-1 中给出了预分频值和相关 WDT 超时周期的完 整列表。
公式 9-1:
WDT 超时周期
WDT 周期 (ms)= 预分频因数 x 后分频因数
其中:
预分频因数
= 1, WDTPRE 为 0 时
4, WDTPRE 为 1 时
后分频因数
= 1/ 后分频比
9.2.6 WDT 在休眠和空闲模式下的操作
如果 WDT 使能,它将在休眠或空闲模式下继续运行。发生 WDT 超时时将唤醒器件,代码将从 执行指令处继续执行。
WDT 对低功耗系统设计很有用,因为它可用于将器件定期从休眠模式唤醒,检查系统状态,并在必 要时执行操作。请注意,SWDTEN 位在这方面很有用。若正常工作时将 WDT 禁止(FWDTEN = 0), 则 SWDTEN 位 (RCON<5>)可用于在器件即将进入休眠模式前打开 WDT。
9.2.5 复位看门狗定时器
WDT 计数器和相关预分频器、后分频器在以下情况下复位:
• 任何器件复位时 • PWRSAV 指令执行时 (即进入休眠或空闲模式时) • WDT 由软件使能时 • 时钟切换完成后,由软件(即改变 NOSC 位后将 OSWEN 位置 1)或硬件(即故障保护时钟
监视器)启动 • 正常执行过程中或 WDT 超时周期的后 25% (WINDIS 为 0 时),通过 CLRWDT 指令复位
答:确定包含 CLRWDT 指令的软件循环符合 WDT 的最小值规范 (不是典型值)。而且,确定考 虑到了中断处理时间。
问 2:
在应用程序中使用 WDT 有哪些好的技巧?
答:有许多技巧有助于在使用 WDT 时防止应用程序锁死或跑飞。仔细分析这些技巧您会发现, 它们中的大多数都建立在三条基本原则之上:

看门狗定时器课件

看门狗定时器课件
看门狗定时器
• 所谓程序跑飞就是PC指针没有按照预定的程序变更,可 能PC指针指向一个不确定的或者根本就没有存放用户代 码的程序存贮空间,造成PC指针根本无法恢复到用户代 码空间之内,程序跑飞,当发生中断时,中断服务程序 代码仍然可以被执行。
• 在工业现场,往往会由于供电电源、空间电磁干扰或其 他原因引起强烈的干扰信号噪声。这些干扰信号作用于 数字器件,极易引发错误动作,引起“程序跑飞”事故 !
bit
相关内容
15-8 口令
7
HOLD
6
NMIES
5
NMI
4
TMSEL
3
CNTCL
2
SSEL
1
IS1
0
IS0
NMI
选择RET / NMI 引脚功能,在PUC后被复位。 0 : RET / NMI 引脚为复位端;
1 : RET / NMI 引脚为边沿触发的非屏蔽中断输入。
NMIES 选择NMI中断的边沿触发方式 0 上升沿触发NMI中断 1 下降沿触发NMI中断 HOLD 停止看门狗定时器工作 0 看门狗功能激活 1 时钟禁止输入,记数停止
#define __MSP430_HAS_WDT__ SFR_16BIT(WDTCTL); #define WDTIS0 (0x0001) #define WDTIS1 (0x0002) #define WDTSSEL (0x0004) #define WDTCNTCL (0x0008) #define WDTTMSEL (0x0010) #define WDTNMI (0x0020) #define WDTNMIES (0x0040) #define WDTHOLD (0x0080) #define WDTPW (0x5A00) #define WDT_MDLY_32 (WDTPW+WDTTMSEL+WDTCNTCL) #define WDT_MDLY_8 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0) #define WDT_MDLY_0_5 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1) #define WDT_MDLY_0_064 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0) #define WDT_ADLY_1000 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL) #define WDT_ADLY_250 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0) #define WDT_ADLY_16 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1) #define WDT_ADLY_1_9 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0) #define WDT_MRST_32 (WDTPW+WDTCNTCL) #define WDT_MRST_8 (WDTPW+WDTCNTCL+WDTIS0) #define WDT_MRST_0_5 (WDTPW+WDTCNTCL+WDTIS1) #define WDT_MRST_0_064 (WDTPW+WDTCNTCL+WDTIS1+WDTIS0) #define WDT_ARST_1000 (WDTPW+WDTCNTCL+WDTSSEL) #define WDT_ARST_250 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS0) #define WDT_ARST_16 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1) #define WDT_ARST_1_9 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)

第21章 看门狗定时器使用及简单的接口扩展

第21章 看门狗定时器使用及简单的接口扩展

第21章看门狗定时器使用及简单的接口扩展21.1看门狗定时器使用单片机应用系统受到干扰而导致死机出错后,都要进行复位,因此一定要有一个可靠的复位电路,以使单片机重启工作。

现在已经有专用的复位电路芯片供我们选用,专用的复位芯片具有快速上电复位、欠压复位等功能。

图21-1为看门狗电路的工作原理。

如果单片机工作工常,则会经常地将看门狗定时器(WDT)清除,那么看门狗定时器就不会溢出复位信号,应用系统正常工作;反之,若单片机工作不正常,程序跑飞或进入死循环,那么它不会去清除看门狗定时器,一段时间后,WDT溢出,输出复位信号给单片机,单片机重新启动工作。

图21-1 看门狗电路的工作原理A T89C51没有内置的看门狗定时器,在干扰严重的场合工作时,需要外部的看门狗定时器配合工作。

而新型的AT89S51已经在内部集成了看门狗定时器,无需再外添元件,使用方便可靠。

下面我们通过实例介绍其使用。

A T89S51的看门狗定时器实际上是一个14位的计数器,其地址位于A6H,第一次激活(启动)时,需依次向其写入01EH、0E1H。

以后每次写入01EH、0E1H是将看门狗定时器清除。

如不及时清除(例如单片机受干扰影响死机后),在16383个机器周期后将溢出,从而复位单片机令它重新启动。

21.2 P0~P3口的32个LED(发光管)依次流水点亮,形成“流水灯”实验我们这个实验是在看门狗启动的情况下做的,为了缩短程序长度,我们使用移位指令进行循环。

21.2.1 实现方法根据LED输出试验板上的P0~P3口排列,确定流水灯点亮顺序:P1.0→P1.7→P3.0→P3.7→P2.0→P2.7→P0.7→P0.0,反复循环。

每个口只有8位,4个口共有32个流水灯移位。

在寄存器R0中存入一个口流水灯长度(8位),再取点亮一个流水灯的立即数(如FEH)送累加器A中。

累加器A采用左循环或右循环移位,每移一次,送对应口显示,同时R0中长度减1,……等到R0中内容为零后,说明这个口的流水动作已结束。

看门狗定时器

看门狗定时器

一、外部看门狗
一般硬件设计的时候使用芯片外部看门狗,该看门狗使用一个不停翻转GPIO来控制。

二、内部看门狗
一般ARM芯片都是有内部看门狗模块。

S5PV210内部看门狗模块有两个功能:
1、作为看门狗。

打开看门口狗后,如果没有“喂狗”,看门狗计数值减到0,会产生一个reset信号,S5PV210就会复位,从BL0重新执行代码。

2、普通的定时器。

可以产生周期性的中断。

三、210看门狗模块的框图
1、看门狗“喂狗”就是向计数寄存器赋一个新的计数值。

2、看门狗clock(基准周期)=
四、看门狗的寄存器
1、WTCON
2、WTDA T
3、WTCNT
4、WTCLRINT
五、实验程序。

第12章看门狗PPT课件

第12章看门狗PPT课件
个AAh值写入WDKEY时,则WD计数器清零,当不正确的 值写入时,则产生一个复位信号。
2020/10/13
2
(4) 3个WD检验位。若WD定时器失效,则启动系统复位。 (5) 一旦系统复位后,WD定时器就自动启动。
2020/10/13
3
WDCLK WD预定
标选择
WD复位 关键字 寄存器
8位WD计 数器
位6:WDDIS,看门狗禁止位。 0:看门狗被使能。 1:看门狗被禁止。
2020/10/13
7
位5-位3:WDCHK2-WDCHK0。当向WDCR控制寄存器写时, 这三位必须被写为101,否则产生系统复位。
位2-位0:WDPS2-WDPS0,看门狗预定标选择位。这些位决 定了看门狗的溢出频率,如下页表所示。
2020/10/13
8
谢谢您的指导
THANK YOU FOR YOUR GUIDANCE.
感谢阅读!为了方便学习和使用,本文档的内容可以在下载后随意修改,调整和打印。欢迎下载!
汇报人:XXXX 日期:20XX年XX月XX日
(即进入HALT模式),WDCLK被停止(悬挂)。
202ቤተ መጻሕፍቲ ባይዱ/10/13
5
12. 3 WD控制寄存器 共有3个寄存器控制WD的操作: (1) WD计数寄存器(WDCNTR)—8位,为8位WD计数器的值,
只读。 在向WD复位关键字寄存器(WDKEY)写入55h+AAh后,会清零
WDCNTR。 (2) 写入WD复位关键字寄存器(WDKEY) —55h+AAh,则清0
55h+AAh 探测器
系统复 判断 位请求
逻辑
WD检验 位
WD模块结构框图

第十八章看门狗定时器

第十八章看门狗定时器

第十八章看门狗定时器概述S3C2410的看门狗定时器用于当系统被噪声或系统错误等故障打断时返回控制器操作状态。

它可以用作一个普通的16位内部定时器来请求中断。

WDT产生一个128个PCLK周期的复位信号。

特性—具有中断请求的正常内部定时器模式—当定时器计数值到达0时产生一个128个PCLK周期的内部复位信号看门狗定时器操作图18-1描述了WDT的功能方框图。

WDT只使用PCLK作为其时钟源。

PCLK 频率经过预定标器,然后再进行分频产生相应的WDT时钟。

预定标器的值和分频因数在WDT控制寄存器WTCON中指定,有效的预定标器的值在0-(2的8次方-1)之间,分频因数可选为16、32、64、128。

使用下式计算WDT频率和每个定时器时钟周期的容差t_watchdog = 1/( PCLK / (Prescaler value + 1) / Division_factor )WTDAT和WTCNT一旦WDT使能,WTDAT寄存器的值不能自动加载进WTCNT,因此必须在WDT启动前向WTCNT写入初始值。

调试环境的考虑当S3C2410在使用嵌入式ICE调试模式时,WDT将自动关闭。

WDT可以通过CPU核心信号--DBGACK判断当前是否处于调试模式,一旦DBGACK信号被断言,WDT的复位输出将会无效,因为看门狗被中止工作。

WDT控制寄存器WTCONWTCON寄存器允许使能/禁止WDT、选择4个不同的时钟信号源、使能/禁止中断、使能/禁止WDT输出。

WDT用于从故障后复位CPU,如果不需要复位,则应该禁止WDT。

如果希望将WDT用作普通定时器,使能中断并关闭看门狗。

WDT数据寄存器WTDATWTDAT寄存器中的值指定溢出的时间。

它不会在初始化WDT时自动加载到WTCNT中,但是用0x8000(初始值)将导致第一次溢出。

这种情况下,WTDAT的值将自动加载到WTCNT中。

WDT计数寄存器WTCNT显示WDT的当前值。

时钟与看门狗介绍PPT课件

时钟与看门狗介绍PPT课件
锁相环由鉴相器、环路滤波器和压控振荡器组成。鉴相器用来鉴别输入信号Ui与输出 信号Uo之间的相位差,并输出误差电压Ud。Ud 中的噪声和干扰成分被低通性质的环路滤 波器滤除,形成压控振荡器(VCO)的控制电压Uc。Uc作用于压控振荡器的结果是把它的 输出振荡频率fo拉向环路输入信号频率fi ,当二者相等时,环路被锁定 ,称为入锁。维 持锁定的直流控制电压由鉴相器提供,因此鉴相器的两个输入信号间留有一定的相位差。
通过下图中可以看到,C28X内核时钟输出,通过LOSPCP低速时钟寄存器设置预分 频,成低速时钟信号LSPCLK,SPI,I2C,MCBSP这些串口通信都是使用的低速时钟信号。 通过HISPCP高速时钟寄存器设置预分频,成高速时钟信号HSPCLK,AD模块采用的是高 速时钟信号,方便灵活设置AD采样率。通过1/2分频给了eCAN模块。直接输出给了系统 控制寄存器模块、DMA模块、EPWM模块、ECAP模块、EQEP模块这些高速外设模块。 当然这些外设基本都有自己的预定标时钟设置寄存器,如果预定标寄存器值为0的话,那 么LSPCLK等时钟信号就成为了外设实际使用时钟信号。当然要使用这些信号需要在外设 时钟寄存器PCLKCR中设置该对应外设使能。
锁相环模块除了为C28X内核提供时钟外,还通过系统时钟输出提供快速和慢速2种 外设时钟。如果使能内部PLL电路,那么可以通过控制寄存器PLLCR软件设置系统的工作 频率。但是要注意,在通过软件改变工作频率时,必须等待系统时钟稳定后才可以继续完 成其他操作。除此之外,每种外设的时钟源都可以通过软件进行使能或者禁止。在具体应 用中,为了降低系统功耗,不使用的外设最好将其外设时钟禁止。外设时钟包括快速外设 和慢速外设两种。分别通过HISPCP和LOSPCP寄存器进行设置。
第8页/共11页

看门狗定时器

看门狗定时器

5.12 模数转换器(ADC)


在数字信号处理器的具体应用中,往往需要采集 一些模拟信号量,如电池电压、面板旋钮输入值 等,模数转换器就是用来将这些模拟量转化为数 字量来供DSP使用。 本节主要介绍TMS320VC5509A内部集成的10 位的连续逼近式模数转换器(ADC)。
1 ADC的结构和时序
ADC数据寄存器ADCDATA
位 字 段 数 值 ADC 转换标志位: 15 ADCBUSY 0 1 采样数据已存在 正在转换之中,在 ADCSTART 置为 1 后,ADCBUSY 变为 1,直到转换结束 数据通道选择: 000 14~12 CHSELECT 001 010 011 100~111 11~10 9~0 保留 ADCDATA AIN0 通道 AIN1 通道 AIN2 通道(BGA 封装) AIN3 通道(BGA 封装) 保留 保留,读时总为 0 存放 10 位 ADC 转换结果 说 明
5.时钟同步

在正常状态下,只有一个主设备产生时钟信号,但 如果有两个或两个以上主设备进行仲裁,这时就需 要进行时钟同步。串行时钟线SCL具有线与的特性, 这意味着如果一个设备首先在SCL线上产生一个低 电平信号就将否决其他设备,这时其他设备的时钟 发生器也将被迫进入低电平。如果有设备仍处在低 电平,SCL信号也将保持低电平,这时其他结束低 电平状态设备必须等待SCL被释放后开始高电平状 态。通过这种方法时钟得到同步。

表8-37 I2C模块的寄存器
寄存器 I2CMDR I2CIER I2CSTR I2CISRC I2CPSC I2CCLKL I2CCLKH I2CSAR I2COAR I2CCNT I2CDRR I2CDXR I2CRSR I2CXSR I2CIVR I2CGPIO 说 明 包含 I2C 模块的控制位 使能或屏蔽 I2C 中断 用来判定中断是否发生,并可查询 I2C 的状态 用来判定产生中断的事件 用来对系统时钟分频以获得 12MHz 时钟 对主时钟分颁,产生低速传输频率 对主时钟分颁,产生低速传输频率 存放所要通信的从设备的地址 保存自己作为从设备的 7 位或 10 位地址 该寄存器被用来产生结束条件以结束传输 供 DSP 读取接收的数据 供 DSP 写发送的数据 DSP 无法访问 DSPF 无法访问 供 DSP 查询已经发生的中断 当 I2C 模块工作在通用 IO 模式下时,控制 SDA 和 SCL 引脚 功 能 I2C 模式寄存器 I2C 中断使能寄存器 I2C 中断状态寄存器 I2C 中断源寄存器 I2C 预定标寄存器 I2C 时钟分频低计数器 I2C 时钟分频高计数器 I2C 从地址寄存器 I2C 自身地址寄存器 I2C 数据计数寄存器 I2C 数据接收寄存器 I2C 数据发送寄存器 I2C 接收移位寄存器 I2C 发磅移位寄存器 I2C 中断向量寄存器 I2C 通用输入输出寄存器

DSP课件、、、看门狗

DSP课件、、、看门狗
表3 看门狗复位寄存器位信息 15 Reserved R—0 8 7 WDKEY R—0 0
表4 看门狗复位寄存器位功能介绍
位 15~8 名 Reserved 称 保留 首先写0x55,然后再写0xAA到WDKEY会使WDCNTR (看门狗计数器)清零。写其他的任何值都会使看门狗 产生复位信号;读操作将返回WDCR寄存器的值 功能介绍
需要特别说明的是,看门狗模块可以产生复位信号和中断信号,但是 两者不能同时产生。当产生复位信号时,出现故障时,信号直接使器件复位; 当产生中断信号时,出现故障时,模块只能产生中断信号,如果中断使能, 则执行中断服务子程序。看门狗模块的中断信号和复位信号是通过寄存器 SCSR的第二位WDENIN位决定的,具体的位信息在前面已经介绍了,在本程序 中,设置该位信息为1,即屏蔽看门狗复位信号,使能看门狗中断信号,所 以在产生故障时,不会复位芯片,而是执行中断服务子程序。
组员:余洋勇、张佳杰、张萌
1.看门狗模块介绍 1.看门狗模块介绍
看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个 输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端 时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂 狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU, 是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环, 或者说程序跑飞 在实际的DSP应用系统当中,运行时极有可能发生干扰和被干扰的 现象。特别是产品化的DSP系统,可靠性是一个不容忽视的问题,严重 时系统会出现程序“跑飞”现象。为了克服这种情况,在可能的情况 下软硬件都应作相应的处理。目前,看门狗技术就是这种处理的有效 措施之一。 F2812中的看门狗模块与240x器件上的看门狗模块基本相同。当8 位看门狗递增计数器计数达到最大值时,看门狗模块输出一个脉冲信 号(512个振荡器时钟宽度)。为了阻止这种情况发生,用户可以屏 蔽计数器或者利用软件定时向看门狗复位控制寄存器写“0x55+0xAA” 序列(可以复位看门狗计数器)。

6_看门狗定时器

6_看门狗定时器

在正常工作期间,一次看门狗定时时间将产生一次系统复位。如果通过编程使
看门狗定时时间稍大于程序中主循环执行一遍所用的时间,并且程序执行过程 中都有对看门狗定时器清零的指令,使计数值重新计数,程序正常运行时,就 会在看门狗定时时间到达之前对看门狗清零,不会产生看门狗溢出。如果由于 干扰使程序跑飞,则不会在看门狗定时时间到达之前执行看门狗清零指令,看 门狗就会产生溢出,从而产生系统复位,使CPU重新运行用户程序,这样程序就 又可以恢复正常运行。
定时时间/ms tsmclk *32768 tsmclk *8192 tsmclk *512 tsmclk *64
1 1
1 1
0 0
1 1
0 1
0 1
1000 250
15.63 1.95
taclk *32768 taclk *8192
taclk *512 taclk *64
看门狗定时器(WDT)
中断控制位
在应用中应根据需要选择合适的定时器模块。MSP430单片机的定时器模块功 能如下: ① 看门狗定时器:基本定时,当程序发生错误时执行一个受控的系统重启动 ② 定时器A:基本定时,支持软件和各种外围模块工作在低频、低功耗条件下 ③ 定时器B:基本定时,功能基本同定时器A,但比定时器A灵活,功能更强大
④ 实时时钟:基本定时,日历功能
#include <msp430f149.h> void main(void) { WDTCTL = WDT_ADLY_1000; // 定时周期设为1000ms IE1 |=WDTIE; // 使能WDT中断 P1DIR |= BIT0; // 将P1.0设为输出 _ _bis_SR_register(LPM0_bits + GIE);// 进入LPM0并使能全局中断 } //看门狗定时器中断服务程序 #pragma vector=WDT_VECTOR _ _interrupt void watchdog_timer(void) { P1OUT ^= BIT0; // 反转P1.0端口状态 }

看门狗定时器

看门狗定时器

看门狗定时器看门狗定时器(⼀)什么是看门狗为了给初学者⼀个系统的概念,先介绍⼀下看门狗的基本概念。

当嵌⼊式系统运⾏时受到外部⼲扰或者系统错误,程序有时会出现"跑飞",导致整个系统瘫痪。

为了防⽌这⼀现象的发⽣,在对系统稳定性要求较⾼的场合往往要加⼊看门狗(WATCHDOG)电路。

看门狗的作⽤就是当系统“跑飞”⽽进⼊死循环时,恢复系统的运⾏。

(⼆)看门狗的⼯作原理给出看门狗的基本的⼯作原理:见下两条:1. 其基本原理为:设本系统程序完整运⾏⼀周期的时间是Tp,看门狗的定时周期为Ti,Ti>Tp,在程序运⾏⼀周期后就修改定时器的计数值,只要程序正常运⾏,定时器就不会溢出,若由于⼲扰等原因使系统不能在Tp 时刻修改定时器的计数值,定时器将在Ti 时刻溢出,引发系统复位,使系统得以重新运⾏,从⽽起到监控作⽤。

2. 在⼀个完整的嵌⼊式系统或单⽚机⼩系统中通常都有看门狗定时器,且⼀般集成在处理器芯⽚中,看门狗实际上就是⼀个定时器,只是它在期满后将⾃动引起系统复位。

(三)S3C2410 的看门狗对于我们所使⽤的S3C2410 的看门狗定时器有两个功能:1. 作为常规时钟,并且可以产⽣中断。

2. 作为看门狗定时器使⽤,当时钟计数减为0(超时)时,它将产⽣⼀个128个时钟周期的复位信号。

S3C2410的看门狗可以被⽤做⼀个普通的⼗六位的记数器来请求中断服务。

下图为看门狗时钟的电路⽰意图,看门狗时钟使⽤PCLK 作为它的时钟源,PCLK通过预分频产⽣适合的看门狗时钟。

预分频值和分频因⼦在看门狗时钟控制器寄存器(WTCON)中被指定。

预分频值的有效范围从0 到28-1。

分频因⼦可以选择16,32,64 或者128。

看门狗定时器计数值的计算公式如下:输⼊到计数器的时钟周期为t_watchdog=1/[PCLK/(Prescaler value+1)/Division_factor]看门狗的定时周期为T=WTCN T×t_watchdog注意:⼀旦看门狗的时钟已经开始使⽤,它的数据寄存器(WTDAT)中的值将不会⾃动读到时间寄存器中间去(WTCNT),由于这个原因,你必须在看门狗记时器启动之前就将⼀个初始值写⼊到看门狗时间记数寄存器(WTCNT)中间去(四)看门狗的相关寄存器看门狗控制寄存器(WTCON)它能够禁⽌或允许看门狗时钟,从四个不同的时钟源中挑选时钟信号,允许或禁⽌中断并且能允许或禁⽌看门狗时钟输出。

传感器应用技术3.4看门狗定时器

传感器应用技术3.4看门狗定时器

新授 “看门狗”的应用编程
第六讲 “让LED眨眼睛” 看门狗程序 应用举例:
喂狗
“喂狗” 是指在看门狗 计数溢出之前的 清零操作。
新授 “看门狗”的应用编程
第六讲 “让LED眨眼睛” 看门狗程序 应用举例:
喂狗
“喂狗” 是指在看门狗 计数溢出之前的 清零操作。
新授 “看门狗”的应用编程
喂狗
“喂狗” 是指在看门狗 计数溢出之前的 清零操作。
单片机编程与应用
系列微课
单片机编程与应用
系列微课
第十九讲
看门狗定时器
主讲:朱伟
导入 电脑的死机行为
让人抓狂上的 重启按钮
新授 单片机的死机
单片机的运行环境
新授 单片机的死机
空间感 应干扰
交流电 源干扰
过程通 道干扰
单片机的运行环境
I get sick!
地电位 波动干

反射波 干扰
新授 单片机的死机
单片机死机 外设会失控
某单片机控制的智能家居系统
新授 单片机的死机
提高单片机系统抗干扰能力的主要手段: (1)接地 (2)隔离与屏蔽 (3)滤波 (4)印制电路板的布线与工艺
新授 单片机的防死机功能模块
单片机内核结构
看门狗定时器
(WDT,Watch Dog Timer)
}
总结
单片机的看门狗:
应对单片机死机的内部硬件计数器
系统时钟停振时看门狗功能会失效
Thank s
}
新授
“看门狗”的应用编程
喂狗
程序实现
#include <reg51.h> sfr WDT_CONTR =0xe1; //看门狗计数器SFR地址声明 main()

讲稿-10 Watchdog的使用原理

讲稿-10 Watchdog的使用原理
18
看门狗应用的编程分析 SystemClockInit(); //系统时钟初始化 这个函数用来初始化FCLK,HCLK和PCLK,分 别为200MHZ,100MHZ,50MHZ。 SerialSwitch(0); //选择串口0 SerialChgBaud(115200); //波特率115200 这两个函数用来初始串口0的。可能有的同学有疑 问,这和串口有什么关系呢?这是因为程序中的 printf和scanf语句,实际上针对主机中的超级终端进 行操作的。
0x57000078 0x5700007c 0x57000080 0x57000084 0x57000088
10
看门狗的功能及工作原理 基本原理为:设本系统程序完整运行一个周期的 时间为tp,看门狗的定时周期为ti,且tp<ti,程序运 行一个周期后,就修改定时器的计数值(“喂 狗”)。只要程序正常运行,定时器就不会溢出。 如果由于干扰等原因使系统不能在tp时刻修改定时 器的计数值,则定时器将在ti时刻溢出,引发系统 复位,使得系统得以重新运行,从而起到监控作 用。
4
复位值 0x0 复位值 0x0 0x0 0x0
CLKDIVN 0x4C000014 R/W
CLKDIVN HDIVN1 HDIVN PDIVN 位 2 1 0
我们所使用的试验箱中,HDIVN和PDIVN是都 是1,因此HCLK是100MHZ,而PCLK是50MHZ。 最简单的设置语句是 r CLKDIVN = (1 << 1) | 1
20
看门狗应用的编程分析 rINTMOD=0x00; //设置中断为IRQ中断。 通过分析该寄存器的内容可以得知,实际上所有的 中断都设置成IRQ而非FIQ。 rtc_tick_init(127); 这个函数的功能就是设置实时时 钟中断的周期,根据前面的知识可以得出,周期是 最长了,为1秒。

利用单片机内部定时器实现软件看门狗

利用单片机内部定时器实现软件看门狗

利用单片机内部定时器实现软件看门狗利用单片机内部定时器实现软件看门狗勤镐工控(05/09/04)软件看门狗(WATCH DOG)也叫做程序运行监视系统。

当程序运行受到干扰,程序飞到一个临时构成的死循环中时,系统将完全瘫痪,软件陷阱也无能为力了,这时就需要人工复位或硬件复位;如果没有人工操作和硬件复位系统,我们采用软件看门狗技术同样也能使系统复位,恢复正常。

这种程序监视系统就好比主人家养了一条狗,主人总要定时喂狗,如果主人忘了喂狗(程序受到干扰,跑飞掉了),狗就会大叫起来,提醒主人(程序重新运行)。

软件看门狗的特性如下:1、本身独立工作,基本上不依赖CPU;2、CPU在一个固定的时间间隔内和系统打一次交道(喂一次狗),以表明系统目前工作正常。

3、当CPU陷入死循环后,能及时发觉并使系统复位。

当系统陷入死循环后,怎样才能从死循环中跳出来呢?只有比这个死循环更高级的中断程序才能夺走CPU的控制权。

为此,可以用一个定时器来做软件看门狗,因为定时器在运行时不占用CPU资源,它是独立工作的,所以,将它的溢出中断设定为最高优先级中断,系统的其它中断均设为比它低级的中断优先级。

然后根据看门狗的定时时间来设定定时器初值。

软件看门狗启动后,系统工作程序必须经常“喂它”,且每两次之间的间隔不得大于定时器的定时时间。

程序中只要设立一个设置定时器初值的子程序,喂它时只要调用这个子程序即可。

当程序陷入死循环后,定时器溢出,产生高优先级中断,从而跳出死循环。

我们还可以在定时器中断服务程序中放置一条LJMP ERR 指令,即可使程序转向出错处理程序;由出错程序来完成以后的工作,并用软件的方法使系统复位。

以下是一个用定时/计数器T0作软件看门狗的完整程序:ORG 0000HAJMP MAINORG 000BHLJMP ERR MAIN :MOV SP , #60HMOV PSW , #00HMOV SCON , #00HMOV TMOD , #01H ;设置T0为16位定时器SETB ET0 ;允许T0中断SETB PT0 ;设置T0中断为高级中断MOV TL0, #00H ;设定T0的定时初值,定时时间约为16ms(6M 晶振)MOV TH0, #0B0HSETB EA ;开中断SETB TR0 ;启动T0 LOOP:...... ;主程序开始LCALL WATCH DOG ;调用喂狗子程序......LJMP LOOP WATCHDOG:MOV TL0, #00H ;喂狗子程序MOV TH0, #0B0HSETB TR0RET ERR:POP ACC ;定时器中断POP ACC ;看门狗软件复位程序CLR APUSH ACCPUSH ACC RETI在程序中,由于执行了中断服务程序后,PC 的指针已经指向0000H ,从而实现了软件复位的目的。

ARM9看门狗Watchdog电路幻灯片PPT

ARM9看门狗Watchdog电路幻灯片PPT

寄存器名称 地址 WTCNT 0x53000008
读/写状态
描述
复位值
R/W 看门狗定时器/计数器寄存器 0x8000
表12-6 看门狗定时器/计数器存放器WTCNT各位的定 义
WTCNT

描述
初始状态
计数器
[15:0]
看门狗定时器的当前计数器
0x800
12.2 看门狗电路的编程
看门狗电路编程较简单,首先看门狗电路初始 化,即使能/制止看门狗、选择输入时钟源、使能 /关闭中断、给看门狗电路设初值;第二是在本系 统程序完整运行一周期的时间后,再重新设定看 门狗的定时周期、俗称“喂狗〞。
1,什么叫看门狗电路,它的工作原理和作用是什 么?
2,WTCON、WTCNT和WTDAT三个存放器的 作用是什么,各bit位的定义是什么?
Байду номын сангаас
初始状态 0x80 00 1
00
0 0
1
表12-2 看门狗定时器控制存放器WTCON各位的定义
3. 看门狗定时器/计数器存放器WTCNT
该存放器为看门狗定时器的计数器,它的值表示 该定时器的当前计数值,即到下一次溢出还需要 经历的时钟数。当该定时器工作在看门狗模式时 使用该存放器,每次溢出前需要重新设置其值, 以防止发生复位。该存放器及其各位的定义如表 12-5和表12-6所列。
t_watchdog=1/( PCLK/(Prescaler value+1)/Division_ factor)
其中, PCLK为系统时钟频率;Prescaler value为预分 频值〔值0~255 〕;Division_ factor为四分频值,可 以是16、32、64或128。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#define WDT_ADLY_250 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0)
#define WDT_ADLY_16 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1)
寄存器宏定义
#define __MSP430_HAS_WDT__
SFR_16BIT(WDTCTL);
#define WDTIS0
(0x0001)
#define WDTIS1
(0x0002)
#define WDTSSEL
(0x0004)
#define WDTCNTCL
(0x0008)
#define WDTTMSEL
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
IS0
定时时间 / ms
1
0.056 Tsmclk * 26
0
0.5 Tsmclk * 29
1
1.9 Taclk * 26
1
8 Tsmclk * 213
0
16 Taclk * 29
0
32 Tsmclk * 215
1
250 Taclk * 213
0
1000 Taclk * 215
看门狗定时器课件
看门狗定时器
MSP430X5XX / 6XX系列单片机的看门狗定时器原理, 如下图所示:
WDT 的相关寄存器
一、WDT寄存器包括WDTCNT和WDTCTL,两个寄存器在 上电和系统复位内容全部清零 ,就是说MSP430的看门狗 在此时处于默认开启的状态。
• 1. 记数单元WDTCNT: WDTCNT是16位增记数器,由MSP430选定的时钟电
(WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0)
#define WDT_MDLY_0_5 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1)
#define WDT_MDLY_0_064 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0)
#define WDT_ADLY_1000 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL)
计数次数为 32 768; 计数次数为 8 192; 计数次数为 512; 计数次数为 64 。
SSEL 选择WDTCNT的时钟源 1 RST/NMI为非屏 蔽中断输入
0 SMCLK 1 ACLK
WDT的定时 时间表(有且仅有这8 种)
晶体为32 768Hz,SMCLK=1MHz。
SSEL
IS1
0
bit
15-8
7Байду номын сангаас
65
4
3
21
0
相关内容 口 令 HOLD NMIES NMI TMSEL CNTCL SSEL IS1
IS0
CNTCL 当该位为 1 时,表示清除WDTCNT ,该位具有自动复0的功能, 无需软件重置。亦即传说 中的定时“喂狗”!
注意: WDT 计数器中的值无法直接清除,只能通过CNTCL 置1实现!
TMSEL 工作模式的选择 0 :看门狗模式; 1 :定时器模式。
bit
15-8
7
65
4
3
21
0
相关内容 口 令 HOLD NMIES NMI TMSEL CNTCL SSEL IS1
IS0
NMI 选择RET / NMI 引脚功能,在PUC后被复位。 0 : RET / NMI 引脚为复位端; 1 : RET / NMI 引脚为边沿触发的非屏蔽中断输入。
3. 在使用后两种模式时候要注意单片机所处的状态下看门 狗能否工作,如单片机处在LPM3时候只有ACLK时钟, 处在LPM4下,没有时钟可以使用。
停止模式:关闭看门狗 C语言实现:WDTCTL = WDTPW + WDTHOLD;
我们用得最多的语句,也是430低功耗的实现语句之一!
计时器模式:作为一个计时器使用,计数器满产生中断时 执行看门狗中断函数。
C语言实现: 主程序中:开启看门狗计时器,如: WDTCTL = WDT_MDLY_8; 或 WDTCTL = WDT_ADLY_250; 等 看门狗中断函数为: #pragma vector = WDT_VECTOR __interrupt void watchdog_timer(void) {
//................... }
看门狗模式:计数溢出时,执行复位中断函数。 C语言实现: 清看门狗: WDTCTL = WDTPW+WDTCNCTL;
设置看门狗: WDTCTL = WDT_MRST_0_5; /* TSMCLK*2POWER9=0.512ms */
或 WDTCTL = WDT_ARST_1000; /* TACLK*2POWER15=1000ms */
路产生的固定周期脉冲信号对记数器进行加法记数。 WDTCNT不能直接软件存取,必须通过看门狗定时器 的控制寄存器WDTCTL来控制。
• 2. 控制寄存器WDTCTL: WDTCTL由两部分组成,高8位用作口令,即5AH(头
文件中定义为WDTPW),低8位是对WDT操作 的控制 命令。写入WDT控制命令时先写入口令WDTPW,口 令写错将导致系统复位。读WDTCTL时不需口令,低 字节WDTCTL的 值,高字节读出始终为69H。
(0x0010)
#define WDTNMI
(0x0020)
#define WDTNMIES
(0x0040)
#define WDTHOLD
(0x0080)
#define WDTPW
(0x5A00)
#define WDT_MDLY_32 (WDTPW+WDTTMSEL+WDTCNTCL)
#define WDT_MDLY_8
bit 15-8
7
6
5
4
3
2
1
0
相关内 口 令 HOLD NMIES NMI TMSEL CNTCL SSEL IS1
IS0

IS1 SI0 选择看门狗定时器的定时输出,T为WDTCNT的 输入时钟源 周期。TMSEL WDT工作模式选择
00 01 10 11
T*2的15次方 T*2的13次方 T*2的9次方 T*2的6次方
NMIES 选择NMI中断的边沿触发方式 0 上升沿触发NMI中断 1 下降沿触发NMI中断
HOLD 停止看门狗定时器工作 0 看门狗功能激活 1 时钟禁止输入,记数停止
看门狗的三种工作模式
1. 看门狗有 三种工作模式:停止模式,计时器模式,看 门狗模式。
2. 其中后两种模式可以选择的时钟源有: SMCLK 和 ACLK
相关文档
最新文档