立即注册 找回密码

微雪课堂

搜索
微雪课堂 AVR AVR单片机内核剖析 ATmega8 查看内容

ATmega8 看门狗定时器

2015-5-27 12:10| 发布者: waveshare-admin| 查看: 3538| 评论: 0

摘要: 看门狗定时器看门狗定时器由独立的1 MHz 片内振荡器驱动。这是VCC = 5V 时的典型值。请参见特性 数据以了解其他VCC 电平下的典型值。通过设置看门狗定时器的预分频器可以调节看门狗 复位的时间间隔,如P 41Table 17 ...

看门狗定时器

看门狗定时器由独立的1 MHz 片内振荡器驱动。这是VCC = 5V 时的典型值。请参见特性 数据以了解其他VCC 电平下的典型值。通过设置看门狗定时器的预分频器可以调节看门狗 复位的时间间隔,如P 41Table 17 所示。看门狗复位指令WDR 用来复位看门狗定时器。 此外,禁止看门狗定时器或发生复位时定时器也被复位。复位时间有8 个选项。如果没有 及时复位定时器,一旦时间超过复位周期, ATmega8 就复位,并执行复位向量指向的程 序。

为了防止无意之间禁止看门狗定时器,当看门狗禁用时,其后必须加入一个特定的关闭序 列,详见看门狗定时器控制寄存器说明。

ATmega8 看门狗定时器

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

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

• Bits 7..5 – Res: 保留
保留位,读操作返回值为零。

• Bit 4 – WDCE: 看门狗修改使能
清零WDE 时必须先置位WDCE,否则不能禁止看门狗。一旦置位,硬件将在紧接的4 个 时钟周期之后将其清零。请参考有关WDE 的说明来禁止看门狗。工作于安全级别1 和2 时也必须置位WDCE 以修改预分频器的数据,详见代码例程。

• Bit 3 – WDE: 看门狗使能
WDE为"1“时,看门狗使能,否则看门狗将被禁止。只有在WDCE为"1“时WDE才能清零。以下为关闭看门狗的步骤:
1. 在同一个指令内对WDCE 和WDE 写"1“,即使WDE 已经为"1“。
2. 在紧接的4 个时钟周期之内对WDE 写"0”。

• Bits 2..0 – WDP2, WDP1, WDP0: 看门狗定时器预分频器2, 1, 和0
WDP2、WDP1 和WDP0 决定看门狗定时器的预分频器,其预分频值及相应的溢出周期如Table 17 所示。

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

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

改变看门狗定时器配置的时间序列

改变配置的序列根据不同的安全级别略有不同。下面将逐一说明。
汇编代码例程
WDT_off:
; 复位WDT
wdr
; 置位WDCE 和 WDE
in r16, WDTCR
ori r16, (1<<WDCE)|(1<<WDE)
out WDTCR, r16
; 关闭WDT
ldi r16, (0<<WDE)
out WDTCR, r16
ret
C 代码例程
void WDT_off(void)
{
/* 复位WDT */
_WDR()
/* 置位WDCE 和 WDE */
WDTCR |= (1<<WDCE) | (1<<WDE);
/* 关闭WDT */
WDTCR = 0x00;
}

安全级别1(WDTON 熔丝位未编程)

在这个模式下,看门狗定时器的初始状态是禁止的,可以没有限制地通过置位WDE 来使能它。改变定时器溢出周期及禁止( 已经使能的) 看门狗定时器时需要执行一个特定的时间序列:
1. 在同一个指令内对WDCE 和WDE 写"1“,即使WDE 已经为"1“。
2. 在紧接的4 个时钟周期之内同时对WDE及WDP写入合适的数据,而WDCE 则写"0”。

安全级别2(WDTON 熔丝位已编程)

在这个模式下,看门狗定时器总是使能的, WDE 的读返回值为"1”。 改变定时器溢出周期需要执行一个特定的时间序列:
1. 在同一个指令内对WDCE和WDE写"1“。虽然WDE总是为置位状态,也必须写"1“以启动时序。

在紧接的4 个时钟周期之内同时对WDCE 写"0”,以及为WDP 写入合适的数据。WDE的数值可以任意。

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


248

顶一下

刚表态过的朋友 (248 人)

最新评论

所有教程
内核剖析
    01Atmega16
    深入剖析Atmega16芯片内核
    02Atmega48
    深入剖析Atmega48芯片内核
    03ATmega8
    深入剖析ATmega8芯片内核
    04ATmega128
    深入剖析ATmega128芯片内核
    05ATmega64
    深入剖析ATmega64芯片内核
    06ATmega32
    深入剖析ATmega32芯片内核
    07ATmega168
    深入剖析ATmega168芯片内核
    08ATtiny13
    深入剖析ATtiny13芯片内核
    09ATmega88
    深入剖析ATmega88芯片内核
    010ATtiny2313
    深入剖析ATtiny2313芯片内核
AVR

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-11-25 09:30 , Processed in 0.020822 second(s), 20 queries .

返回顶部