历史上的今天
今天是:2024年11月08日(星期五)
2021年11月08日 | ATmega128 看门狗定时器
2021-11-08 来源:eefocus
看门狗定时器
看门狗定时器由独立的1 Mhz 片内振荡器驱动。这是VCC = 5V 时的典型值。请参见特性 数据以了解其他VCC 电平下的典型值。通过设置看门狗定时器的预分频器可以调节看门狗 复位的时间间隔,如 P 53Table 22 所示。看门狗复位指令WDR 用来复位看门狗定时器。 此外,禁止看门狗定时器或发生复位时定时器也被复位。复位时间有8 个选项。如果没有 及时复位定时器,一旦时间超过复位周期,ATmega128 就复位,并执行复位向量指向的 程序。具体的看门狗复位时序在P 50 有说明。
为了防止无意之间禁止看门狗定时器或改变了复位时间,根据熔丝位M103C 和 WDTON 芯片提供了3 个不同的保护级别,如Table 21. 所示。安全级别0 相应于ATmega103 的 设置。使能看门狗定时器则没有限制。请参考P 54“ 改变看门狗定时器配置的时间序列” 。

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

• Bits 7..5 – Res: 保留
保留位,读操作返回值为零。
• Bit 4 – WDCE: 看门狗修改使能
清零WDE 时必须先置位WDCE,否则不能禁止看门狗。一旦置位,硬件将在紧接的4 个 时钟周期之后将其清零。请参考有关WDE 的说明来禁止看门狗。工作于安全级别1 和2 时也必须置位WDCE 以修改预分频器的数据,如P 54 “ 改变看门狗定时器配置的时间序 列” 所示。
• Bit 3 – WDE: 看门狗使能
WDE为"1“时,看门狗使能,否则看门狗将被禁止。只有在WDCE为"1“时WDE才能清零。以下为关闭看门狗的步骤:
1. 在同一个指令内对WDCE 和WDE 写"1“,即使WDE 已经为"1“。
2. 在紧接的4 个时钟周期之内对WDE 写"0”。
工作于安全级别2 时是永远无法禁止看门狗定时器的。参见 P 54 “ 改变看门狗定时器配置的时间序列” 。
• Bits 2..0 – WDP2, WDP1, WDP0: 看门狗定时器预分频器2, 1, 和0
WDP2、WDP1 和WDP0 决定看门狗定时器的预分频器,如Table 22 所示。

下面的例子分别用汇编和C 实现了关闭WDT 的操作。在此假定中断处于用户控制之下 (比如禁止全局中断) ,因而在执行下面程序时中断不会发生。
| 汇编代码例程 |
| WDT_off: ; 置位 WDCE 和 WDE ldi r16, (1< ; 关闭WDT ldi r16, (0< ret |
| C 代码例程 |
| void WDT_off(void) { /* 置位WDCE 和 WDE */ WDTCR = (1< WDTCR = 0x00; } |
改变看门狗定时器配置的时间序列
改变配置的序列根据不同的安全级别略有不同。下面将逐一说明。
安全级别0
这个模式与ATmega103 的看门狗操作相兼容。看门狗的初始状态是禁止的,可以没有限 制地通过置位WDE 来使能它,以及改变定时器溢出周期。禁止看门狗定时器时则需要遵 守有关WDE 的说明。
安全级别1
在这个模式下,看门狗定时器的初始状态是禁止的,可以没有限制地通过置位WDE 来使能它。改变定时器溢出周期及禁止( 已经使能的) 看门狗定时器时需要执行一个特定的时间序列:
1. 在同一个指令内对WDCE 和WDE 写"1“,即使WDE 已经为"1“。
2. 在紧接的4 个时钟周期之内同时对WDE 写"0”,以及为WDP 写入合适的数据,而WDCE 则写"0”。
安全级别2
在这个模式下,看门狗定时器总是使能的, WDE 的读返回值为"1”。 改变定时器溢出周期需要执行一个特定的时间序列:
1. 在同一个指令内对WDCE和WDE写"1“。虽然WDE总是为置位状态,也必须写"1“以启动时序。
2. 在紧接的4 个时钟周期之内同时对WDCE 写"0”,以及为WDP 写入合适的数据。WDE 的数值可以任意。
上一篇:ATmega64 简介
下一篇:ATmega128 中断向量
史海拾趣
|
1、功能图表转换实现的基本规则 (1)转换实现的条件 在功能表图中,步的活动状态的进展是由转换的实现来完成的。转换实现必须同时满足两个条件: 1)该转换所有的前级步都是活动步; 2)相应的转换条件得到满足。 如果转换的前级步或后续步不 ...… 查看全部问答> |
|
我是个新soho,由于最近打印量骤增,所以决定添置个廉价打印机,看了看市场的300元以下的产品,似乎只有佳能的iP1180和联想的3410可以选。1180是单色打印的,这点我倒是无所谓,我不打照片,3410看起来更强大,但是总觉得不是三大品牌的不太放心。 ...… 查看全部问答> |
|
我刚接触Vxworks的BSP开发,请各位指点一下,在此先谢过! 我正在一块板子上做BSP开发,程序在bootloader阶段挂住了,请问各位如何定位到具体挂在哪个函数里面了:romInit()、sysHwInit()、UsrInit()? 听人说可以点灯调试,我没有点过,请各位指 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:47 编辑 大赛临近、能不能让我得点芯币以备到时下载资料啊 = =。我芯币不多啊,。上传常用74系列,74LS,74HC系列逻辑门电路给大家。 不好可以骂我 - -。   ...… 查看全部问答> |
|
电力逆变电源是一种能够将DC12V直流电转换为和市电相同的AC220V交流电,供一般电器使用,是一种方便的电源转换器。 电力逆变电源有着广泛的用途,它可用于各类交通工具,如汽车、各类舰船以及飞行器,在太阳能及风能发电领域,逆变器有着不可 ...… 查看全部问答> |




