#include <iom16v.h>
#define DISP_DDR DDRB
#define DISP_PORT PORTB
void wdt_init(void)
{
asm("wdr");
WDTCR=0x0F;
}
void main(void)
{
uint8 i;
DISP_DDR = 0XFF;
wdt_init();
while(1)
{
DISP_PORT++;
asm("wdr");
delay50ms(20);
}
}
void WDT_off(void)
{
asm("cli");
asm("wdr");
MCUSR &= ~(1<<WDRF);
WDTCR |= (1<<WDTOE) | (1<<WDE);
WDTCR = 0x00;
}
void WATCHDOG_Feed()
{
asm("wdr");
}
初始化,然后喂狗,喂狗要在看门狗咬人之前,(复位之前喂狗)
注:清狗指令不能放定时器中断里,因此不管程序飞跑到哪里,
执行哪里,中断产生后都会执行中断函数,
所以在定时器里的清狗指令会使WDT起不到作用(失效)。