AVR应用笔记 AVR单片机内核剖析 ATtiny13 看门狗定时器

ATtiny13 看门狗定时器

以下资料参考马潮老师的中文手册,由微雪电子整理并发布,转载请注明出处:www.waveshare.net,否则追究相应责任!

ATtiny13 有一个增强型的看门狗定时器 (WDT),其主要特征为:
* 独立的片上振荡器提供时钟
* 3 种工作模式
– 中断
– 系统复位
– 中断与系统复位
* 暂停时间从16ms 到8s可选
* 看门狗熔丝始终处于故障保险模式。

ATtiny13 看门狗定时器

看门狗定时器由独立的 128 kHz 片内振荡器驱动。当计数器达到给定的溢出值时, WDT 发出中断或系统复位。在正常工作模式下,在计数器达到溢出值前,它需要系统使用看门 狗定时器复位指令来重启计数器。若系统没有重启计数器,则会出现中断或系统复位。

在中断模式下,当定时器结束 WDT 发出一个中断。该中断可将芯片从休眠状态中唤醒, 也可作为一个通用系统定时器。例如限制最大工作时间,当工作时间超出期望值时发出中 断。在系统复位模式下,当定时器结束 WDT 发出复位信号。这是为防止由于错误代码所 引起的系统挂起的典型使用。第三种模式,中断与系统复位模式,结合两种模式,首先给 出中断,然后转换到系统复位模式。使用该模式,可在系统复位前通过保存临界参数来安 全关闭。

WDTON 熔丝位编程将使看门狗定时器进入系统复位模式。对其编程时,系统复位模式位 (WDE)与中断模式位(WDTIE)分别为1和0。为保证编程安全,必须按照下面顺序来改变看 门狗设置:
1. 在一步操作中,同时对WDCE位与 WDE写"1”。无论 WDE的初始值是多少,在此 必须对其写逻辑 ”1”。
2. 在接着的四个时钟周期内,在 WDE 与WDP中写入期望值,但同时要清除WDCE 位。

下面的例子分别用汇编和C语言实现了关闭WDT的操作。在此假定中断处于用户控制之 下 ( 比如禁止全局中断 ) ,因而在执行下面程序时中断不会发生。

汇编实现了关闭WDT

C语言实现了关闭WDT

Note: 1. 代码例程假设包括所需头文件。
注意:若ATtiny13看门狗由于错误指针或掉电状态等使看门狗出现意外使能,芯片将复位看门狗定 时器将保持使能。如果编码没有设置处理看门狗,则可能导致溢出复位出现死循环。为避 免出现这种状况,即使没有使用看门狗,应用程序在初始化时应对 WDRF 与 WDE 控制位清零。

下面的例子分别用汇编和 C 语言实现了看门狗定时器溢出值的改变。

汇编实现了看门狗定时器溢出值的改变

C语言实现了看门狗定时器溢出值的改变

Note: 1. 代码例程假设包括所需头文件。
注意:看门狗定时器应在 WDP 位改变前复位,因为当改变 WDP 转换到一个短溢出周期 时可能会导致暂停。

看门狗定时器控制寄存器-WDTCR

ATtiny13 WDTCR

· Bits 7–WDTIF: 看门狗定时器中断标志
当看门狗定时器出现溢出且看门狗定时器配置为中断时,该位置位。当执行相应的中断程 序时, WDTIF 由硬件清除;或者在该位写入逻辑 "1” 来清除。当 SREG 寄存器的 I 位与 WDTIE置位,执行看门狗溢出中断 。
· Bit 6 – WDTIE: 看门狗定时器中断使能
当该位与 SREG 寄存器的 I 位置位,看门狗中断使能。如果同时也将 WDE 清除,看门狗 定时器进入中断模式,一旦看门狗定时器程序暂停,则执行相应的中断。

若 WDE 置位,则看门狗定时器处于中断与系统复位模式。看门狗定时器的第一次溢出将 设置WDTIF。执行相应的中断向量将会由硬件最大清除WDTIE与WDTIF(看门狗进入系 统复位模式 )。这种方式会保证使用中断时看门狗定时器的安全性。在中断与系统复位模 式下,WDTIE在每次中断后必须设置。然而它不能在中断服务子程序中执行,因为这可 能会损害看门狗系统复位模式的安全性。如果在下一次溢出前没有程序中断,则进入系统 复位模式。

ATtiny13 看门狗定时器配置

· Bit 4 – WDCE: 看门狗修改使能
该位用在改变 WDE 与预分频位的时序中。WDCE 置位来清除 WDE 位,与 / 或改变预分频位。一旦置 "1”,硬件将在四个时钟周期后对 WDCE 清零。
· Bit 3 – WDE: 看门狗系统复位使能
WDE由MCUSR寄存器的WDRF决定。这就是说当WDRF设置时,WDE也设置。要清除 WDE,必须先清除 WDRF。这一特性保证状态出错时的多重复位,及出错后的安全启动。
·Bit 5, 2..0 - WDP3..0: 看门狗定时器预分频器 3, 2, 1和 0
WDP3..0 决定看门狗定时器的预分频器。如 P39Table 17 所示。

ATtiny13 看门狗定时器预分频器选项

 相关AVR资料说明

可作为如下AVR的参考资料: ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny2313 ATtiny26 ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32 ATmega64 ATmega128 ATmega162 ATmega169 ATmega169P ATmega8515 ATmega8535

 相关AVR型号资料

ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny26 ATtiny2313
ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32
ATmega64 ATmega128 ATmega162 ATmega169 ATmega8515 ATmega8535

ATtiny13 看门狗定时器

——