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

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