添加收藏夹  设为首页  深圳服务热线:13692101218  13751165337
51电子网联系电话:13692101218
位置:首页 > IC型号导航 > 首字符A型号页 > 首字符A的型号第973页 > ATMEGA88-20MJ > ATMEGA88-20MJ PDF资料 > ATMEGA88-20MJ PDF资料1第47页
ATmega48/88/168
下面的代码例子分别用汇编和C实现了关闭
看门狗定时器。在此假定中断处于用户控制(通过禁用如
全局中断)使中断不会发生上述的执行过程中
功能。
汇编代码例程
(1)
WDT_OFF :
;关闭全局中断
CLI
;复位看门狗定时器
WDR
;在MCUSR清除WDRF
in
ANDI
OUT
R16 , MCUSR
R16 , (为0xFF & ( 0<<WDRF ) )
MCUSR , R16
;写逻辑1 WDCE和WDE
;保持旧预分频器设置,以防止意外超时
LDS
R16 , WDTCSR
ORI
R16 , ( 1<<WDCE ) | ( 1<<WDE )
STS
WDTCSR , R16
;关闭WDT
LDI
R16 , ( 0<<WDE )
STS
WDTCSR , R16
;打开全局中断
SEI
RET
C代码示例
(1)
无效WDT_OFF (无效)
{
__disable_interrupt ();
__watchdog_reset ();
/ *清除WDRF在MCUSR * /
MCUSR & = ( 1<<WDRF ) ;
/ *写逻辑1 WDCE和WDE * /
/ *保持旧预分频器设置,以防止意外超时
*/
WDTCSR | = ( 1<<WDCE ) | ( 1<<WDE ) ;
/ *关闭WDT * /
WDTCSR = 0×00 ;
__enable_interrupt ();
}
注意:
1.本代码假定的头文件包含。
注:如果看门狗被意外激活,例如通过一个失控的指针或
掉电状态下,设备将被复位和看门狗定时器将保持启用状态。
如果代码没有设置处理看门狗,这可能会导致出现死循环
超时复位。为了避免这种情况,应用软件要经常清除
47
2545D–AVR–07/04

深圳市碧威特网络技术有限公司