ipoqing 发表于 2013-3-6 09:29:41

avr看门狗能否延长时间?12M的晶振是否意味着最大时间为

void wdt_init(void)
{
    asm("WDR");//用asm添加一个wdr的指令
    WDTCR|=(1<<WDE)|0x07;//溢出周期1.8s

}

主程序中有asm("WDR");喂狗程序,但是延时的时间不是1.8s,请问我的问题是不是出现在 了用外部12m晶振上面了,或者应该如何延长时间呢?

lcw_swust 发表于 2013-3-6 09:29:42

“WDTCR|=...”此句之前添加一行“WDTCR=0x18;”试试

ipoqing 发表于 2013-3-6 10:07:05

lcw_swust 发表于 2013-3-6 09:52 static/image/common/back.gif
“WDTCR|=...”此句之前添加一行“WDTCR=0x18;”试试

嗯,试过了,可以,谢谢了,就是想问下为什么非要在初始化时将WDCE和WDE置位呢?之前也看到sheet里面说如果要是改变分频或者关闭看门狗之前必须要将二者置位的

lcw_swust 发表于 2013-3-6 10:25:18

ipoqing 发表于 2013-3-6 10:07 static/image/common/back.gif
嗯,试过了,可以,谢谢了,就是想问下为什么非要在初始化时将WDCE和WDE置位呢?之前也看到sheet里面说如 ...

大概是由于BIT4是“看门狗修改使能”

ipoqing 发表于 2013-3-6 10:33:08

lcw_swust 发表于 2013-3-6 10:25 static/image/common/back.gif
大概是由于BIT4是“看门狗修改使能”

哦,那估计可能默认初始化就是修改看门狗吧。多谢大侠了

子鱼 发表于 2013-3-6 10:33:48

学习了 收获不小 以后仔细看文档
页: [1]
查看完整版本: avr看门狗能否延长时间?12M的晶振是否意味着最大时间为