首页 理论教育如何使用看门狗定时器?

如何使用看门狗定时器?

【摘要】:图4-39看门狗定时器主要特性如下:单独的片内振荡器作为时钟。看门狗定时器由独立的128 kHz片内振荡器驱动。此外,禁止看门狗定时器或发生复位时它也被复位。图4-40看门狗定时器控制寄存器Bit7——WDIF:看门狗中断标志。当看门狗定时器溢出且定时器作为中断使用时,该位置位。当看门狗定时器出现溢出时执行相应的中断程序。表4-13看门狗定时器的配置Bit4——WDCE:看门狗修改使能。表4-14看门狗定时器预分频器选项

ATmega48/88/168有一个增强型看门狗定时器(WDT),如图4-39所示。

图4-39 看门狗定时器

主要特性如下:

(1)单独的片内振荡器作为时钟。

(2)三种工作模式:①中断;②系统复位;③中断与系统复位。

(3)从16 ms到8 s的可选择溢出周期。

(4)故障安全模式下,可能的硬件熔丝看门狗始终开启。

看门狗定时器由独立的128 kHz片内振荡器驱动。当计数器达到给定值时,WDT产生中断或系统复位。看门狗复位指令WDR用来复位看门狗定时器。此外,禁止看门狗定时器或发生复位时它也被复位。

在中断模式下,当定时器满WDT产生中断,该中断唤醒器件作为通用系统定时器。下面给出一个限制操作最大时间的例子,当操作时间超过预期值时产生一个中断。系统复位模式下,当定时器满WDT产生中断,这是在代码失控时防止系统挂起的典型使用。第三种模式,中断与系统复位模式,将前两种模式混合在一起,先产生中断然后转到系统复位模式下。该模式下通过在系统复位前保存关键参数,达到安全关闭的目的。

WDTON熔丝位编程将强制进入系统复位模式。而系统复位模式位WDE和中断模式位WDIE分别置为1与0。为保证编程的安全性,改变看门狗结构必须遵循如下时序:

(1)在同一个指令内对WDCE和WDE写“1”,即使WDE已经为“1”。

(2)在紧接的4个时钟周期之内对WDE与WDP写入期望值,但WDCE位必须清零,以上操作必须在一次操作中完成。

看门狗定时器控制寄存器——WDTCSR,如图4-40所示。

图4-40 看门狗定时器控制寄存器

(1)Bit7——WDIF:看门狗中断标志。当看门狗定时器溢出且定时器作为中断使用时,该位置位。执行相应的中断处理程序时WDIF由硬件清零,也可通过对标志位写“1”对WDIF清零。当SREG寄存器中的I位与WDIE也置位时,MCU执行看门狗溢出中断。

(2)Bit6——WDIE:看门狗中断使能。WDIE置“1”时WDE被清零,状态寄存器中的I位置位,看门狗溢出中断使能。当看门狗定时器出现溢出时执行相应的中断程序。如果WDE置位,当溢出出现时,WDIE由硬件自动清零。这对使用中断时保证看门狗复位的安全性非常有效。在WDIE位被清零后,下一个超时将引发系统复位。为避免看门狗复位,在每次中断后必须对WDIE置位,如表4-13所示。

表4-13 看门狗定时器的配置

(3)Bit4——WDCE:看门狗修改使能。清零WDE时必须置位WDCE,否则不能禁止看门狗。一旦置位,硬件将在紧接的4个时钟周期之后将其清零。

(4)Bit3——WDE:看门狗系统复位使能。WDE被MCUSR寄存器的WDRF覆盖。这表示当WDRF置位时WDE同样置位。WDE清零前必须先将WDRF清零,该特性保证状态引起失误时产生多重复位。

(5)Bit5,Bit2~Bit0——WDP3~WDP0:看门狗定时器预分频器3、2、1与0。当看门狗定时器使能时,WDP3~WDP0决定看门狗定时器的预分频器,如表4-14所示。

表4-14 看门狗定时器预分频器选项