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就介绍完了,您有什么想法可以联系小编。