天天

AVR_WDG 问题解决!

0
阅读(3163)

由于项目使用的是电池供电,需要使设备进入休眠模式,来省电。

avr提供好几个休眠模式,使用省电模式的话,在进入省电模式后,电流为0.2MA,唤醒后电流为2.2MA,这样还是无法解决电池长时间供电的问题。

决定使用掉电模式WDG唤醒。

WDG定时为32MS,但是程序跑起来发现怎么多了一个72MS的波形出来,如下图。

6WU8K_KM2~RU40`[0F@RJLW

重新设置一下WDG,在改变WDG定时时间的话,要先运行该语句

WDTCSR|=(1<<WDCE)|(1<<WDE);

否则是无法进行定时的。

中断服务程序,要重新置位WDG中断标志,该标志在中断进入时被清零。如果不置位的话,下个超时到来时,就直接复位了。

WDTCSR |= (1<<WDIE);

WDG问题解决项目就快完成了。

胜利的奸笑-哈哈哈!