立即注册 找回密码

微雪课堂

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

ATmega16 看门狗定时器

2015-5-27 00:18| 发布者: waveshare-admin| 查看: 2970| 评论: 0

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

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

看门狗定时器还可用来产生中断。这在使用看门狗将系统从掉电状态唤醒是非常有用的。

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

· Bits 7..5 – Res: 保留位
ATmega16 保留位,读操作返回值为零。
· Bit 4 – WDTOE: 看门狗修改使能
清零WDE 时必须置位WDTOE,否则不能禁止看门狗。一旦置位,硬件将在紧接的4 个时钟周期之后将其清零。请参考有关WDE 的说明来禁止看门狗。
· Bit 3 – WDE: 使能看门狗
WDE为"1“ 时,看门狗使能,否则看门狗将被禁止。只有在WDTOE为"1“ 时WDE 才能清零。以下为关闭看门狗的步骤:
1. 在同一个指令内对WDTOE 和WDE 写"1“,即使WDE 已经为"1“
2. 在紧接的4 个时钟周期之内对WDE 写"0”
· Bits 2..0 – WDP2, WDP1, WDP0: 看门狗定时器预分频器2, 1 和 0
WDP2、WDP1 和WDP0 决定看门狗定时器的预分频器,如Table 17 所示。

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

汇编代码例程
WDT_off:
; WDT 复位
WDR
; 置位 WDTOE 和 WDE
in r16, WDTCR
ori r16, (1<<WDTOE)|(1<<WDE)
out WDTCR, r16
; 关闭WDT
ldi r16, (0<<WDE)
out WDTCR, r16
ret
C 代码例程
void WDT_off(void)
{
/* WDT 复位*/
_WDR();
/* 置位 WDTOE 和 WDE*/
WDTCR |= (1<<WDTOE) | (1<<WDE);
/* 关闭WDT */
WDTCR = 0x00;
}

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


252

顶一下

刚表态过的朋友 (252 人)

最新评论

所有教程
内核剖析
    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-4-20 18:53 , Processed in 0.026828 second(s), 20 queries .

返回顶部