ATtiny13 有一个增强型的看门狗定时器 (WDT),其主要特征为: 在中断模式下,当定时器结束 WDT 发出一个中断。该中断可将芯片从休眠状态中唤醒, 也可作为一个通用系统定时器。例如限制最大工作时间,当工作时间超出期望值时发出中 断。在系统复位模式下,当定时器结束 WDT 发出复位信号。这是为防止由于错误代码所 引起的系统挂起的典型使用。第三种模式,中断与系统复位模式,结合两种模式,首先给 出中断,然后转换到系统复位模式。使用该模式,可在系统复位前通过保存临界参数来安 全关闭。 WDTON 熔丝位编程将使看门狗定时器进入系统复位模式。对其编程时,系统复位模式位 (WDE)与中断模式位(WDTIE)分别为1和0。为保证编程安全,必须按照下面顺序来改变看 门狗设置: 1. 在一步操作中,同时对WDCE位与 WDE写"1”。无论 WDE的初始值是多少,在此 必须对其写逻辑 ”1”。 2. 在接着的四个时钟周期内,在 WDE 与WDP中写入期望值,但同时要清除WDCE 位。 下面的例子分别用汇编和C语言实现了关闭WDT的操作。在此假定中断处于用户控制之 下 ( 比如禁止全局中断 ) ,因而在执行下面程序时中断不会发生。 Note: 1. 代码例程假设包括所需头文件。 注意:若ATtiny13看门狗由于错误指针或掉电状态等使看门狗出现意外使能,芯片将复位看门狗定 时器将保持使能。如果编码没有设置处理看门狗,则可能导致溢出复位出现死循环。为避 免出现这种状况,即使没有使用看门狗,应用程序在初始化时应对 WDRF 与 WDE 控制位清零。 下面的例子分别用汇编和 C 语言实现了看门狗定时器溢出值的改变。 Note: 1. 代码例程假设包括所需头文件。 注意:看门狗定时器应在 WDP 位改变前复位,因为当改变 WDP 转换到一个短溢出周期 时可能会导致暂停。 看门狗定时器控制寄存器-WDTCR · Bits 7–WDTIF: 看门狗定时器中断标志 该位用在改变 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 所示。 |