WDTO_30MS Watchdog定时器30 毫秒超时
WDTO_60MS Watchdog定时器60 毫秒超时
WDTO_120MS Watchdog定时器120 毫秒超时
WDTO_250MS Watchdog定时器250 毫秒超时
WDTO_500MS Watchdog定时器500 毫秒超时
WDTO_1S Watchdog定时器1 秒超时
WDTO_2S Watchdog定时器2 秒超时
Watchdog 测试程序:
在CA-M8 上执行此程序时应打开S1-8(LEDY),使黄色发光管连接PB0 引脚。
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define SET_LED PORTB&=0XFE //PB0 接黄色发光管
#define CLR_LED PORTB|=0X01
//误差不会太大的延时1ms 函数
void DelayMs(uint ms)
{
uint i;
for(i=0;i
_delay_loop_2(4 *250);
}
int main(void)
{
DDRB=_BV(PB0);
PORTB=_BV(PB0); //CLR_LED
//WDT 计数器同期为一秒
wdt_enable(WDTO_1S);
wdt_reset();//喂狗
DelayMs(500);
SET_LED;
//等待饿死狗
DelayMs(5000);
SET_LED;
while(1)
wdt_reset();
}
执行结果:
CA-M8 上的黄色发光管不断的闪烁,证明了Watchdog 使MCU 不断的复位。
三、注意事项
如果循环体内每循环一次的时间不超过看门狗的复位时间,主要喂狗一次就可以,否则需要多次喂狗。
责任编辑;zl
关于控制,MCU就介绍完了,您有什么想法可以联系小编。