|
atmega644 看门狗疯狂重启!!!一条疯狗啊
[复制链接]
不说,直接上我的代码:
void WDT_Init(void) // 看门狗初始化
{
//WDTCSR = 0x00; // 关闭看门狗
//CLR_BIT(MCUSR, WDRF); // 看门狗复位标志清零
asm("wdr"); // 复位WDT(喂狗)
WDTCSR = ( (1 << WDCE) | (1 << WDE) ); // 使能看门狗修改
WDTCSR = (1 << WDE) | (1 << WDP2) | (1 << WDP1); // 使能看门狗, 溢出时间~1s(Vcc = 5V)
}
然后在主程序主循环里面,我会加上 asm("wdr"); // 复位WDT(喂狗)
然后发现上电就疯狂重启,狗狗疯了!
谁能告诉我这是为什么啊?
我用的是atmega644芯片!
我要疯了啊,644芯片这么恶心啊?我以前用ATmega64就不会这样。
我也直接上64的看门狗程序,在64芯片上是正常能跑的,所以我拷贝到644了,结果居然疯狂饿死狗?
void WDT_Init(void)
{
WDR();//复位WDT(喂狗)
WDTCR = (1 << WDCE) | (1 << WDE);//使能看门狗修改
WDTCR = 0x0F;//使能看门狗,溢出时间~1.8s(Vcc = 5V)
}
主程序主循环有 WDR();//复位WDT(喂狗)
|
|
|