geniusly111 发表于 2012-10-9 11:25:14

ATMEGA644看门狗时间与datasheet严重不同

644芯片,看门狗就算设置到最大值8s,仍然在约0.5s就会饿死。特别是写EEPROM的时候,示波器测出,写EEPROM块的时候,很耗时,写了约0.5s,看门狗就饿死重启了

代码如下

void WDT_Init(void) // 看门狗初始化
{
    CLR_BIT(MCUSR, WDRF);
    WDTCSR = ( (1 << WDCE) | (1 << WDE) );
    WDTCSR = (1 << WDE) | (1 << WDP3) | (1 << WDP0); // 溢出时间~8s(Vcc = 5V)
}

我使用的是内部8M频率,无外部晶振

大虾谁知道怎么回事?看门狗设置已经按照datasheet了啊

wzyllgx 发表于 2012-10-9 11:56:36

你这个应该是1S的样子吧,估计这个8S应该是在1M时钟的时候才能达到的,默认是8M8分频,实际是1M的。

geniusly111 发表于 2012-10-9 12:35:36

对对对,应该差不多是1s,不是0.5s。

哇,那岂不是最多饿狗时间是1s左右?也太短了吧?

前提:我必须用片内8M频率

有办法把饿狗时间拉到最长吗?

sco518 发表于 2012-10-9 12:38:26

时钟分频。

geniusly111 发表于 2012-10-9 12:47:37

我用熔丝位选定片内8M,这种情况下时钟分频,还有看门狗的时钟分频。怎么写代码呢

Garbage614 发表于 2012-10-9 20:55:51

这个貌似数据手册上写的太明白了,连多长时间都写了。我曾今用秒表卡过,差不多

geniusly111 发表于 2012-10-9 21:27:27

我一楼写的就是按照数据表写的C。问题就是不对啊

ipoqing 发表于 2013-3-6 08:42:28

却是会有这种情况,我用的是mega128,目前也在思索这个问题,弄明白了来告诉楼主
页: [1]
查看完整版本: ATMEGA644看门狗时间与datasheet严重不同