添加收藏夹  设为首页  深圳服务热线:13692101218  13751165337
51电子网联系电话:13692101218
位置:首页 > IC型号导航 > 首字符A型号页 > 首字符A的型号第1390页 > ATMEGA406 > ATMEGA406 PDF资料 > ATMEGA406 PDF资料2第45页
ATmega406
注:如果看门狗被意外激活,例如通过一个失控的指针或掉电
条件下,该装置将复位和看门狗定时器将保持启用状态。如果代码是不
设置处理看门狗,这可能会导致超时复位的死循环。为了避免这种情况
的情况下,应用软件要经常清除看门狗复位标志
( WDRF )和初始化例程WDE控制位,即使看门狗不使用。
下面的代码示例显示了用汇编和C函数改变超时
看门狗定时器的值。
汇编代码例程
(1)
WDT_Prescaler_Change :
;关闭全局中断
CLI
;复位看门狗定时器
WDR
;开始定时序
in
ORI
OUT
; --
LDI
OUT
; --
SEI
RET
R16 , WDTCSR
R16 , ( 1<<WDCE ) | ( 1<<WDE )
WDTCSR , R16
有四个周期从这里设置新值 -
R16 , ( 1<<WDE ) | ( 1<<WDP2 ) | ( 1<<WDP0 )
WDTCSR , R16
完成设置新值,使用2个周期 -
;设置新的预分频器(超时)值= 64K周期( 0.5秒)
;打开全局中断
C代码示例
(1)
无效WDT_Prescaler_Change (无效)
{
__disable_interrupt ();
__watchdog_reset ();
/ *开始计时
equence * /
WDTCSR | = ( 1<<WDCE ) | ( 1<<WDE ) ;
/ *设置新的预分频器(超时)值= 64K周期( 0.5秒) * /
WDTCSR
}
注意:
1.
“关于代码示例”第7页。
= ( 1<<WDE ) | ( 1<<WDP2 ) | ( 1<<WDP0 ) ;
__enable_interrupt ();
注:看门狗定时器应的WDP位的任何变化之前被重置,因为变化
在WDP位可以切换到一个较短的超时周期时,导致超时。
45
2548E–AVR–07/06

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