用ATMEGA168做一个简单的项目,想用内部看门狗;编译器是ICC AVR 6.31;
仿真器是AVR STUDIO4.14
初始化程序如下:
void watchdog_init(void)
{
WDR(); //this prevents a timout on enabling
WDTCSR =(1<<WDCE)|(1<<WDE);
WDTCSR = 0x0F;//F; //WATCHDOG ENABLED - dont forget to issue WDRs
//prescale:2048. about 2.1s at 5.1v to timeout
}
不喂狗的情况下,按理说是要到2.1秒才复位的,但是在仿真时,发现看门狗在很短的时间内就复位了,而且,好像WDR()命令不起作用?不知道是什么问题,是编译器的问题?还是其它的,我程序里面大部分中断都关闭了。哪位高手帮忙解答下,谢谢! |