单片机中的看门狗定时器
热1已有 666 次阅读 2009-10-14 10:181 看门狗定时器结构
2 看门狗定时器控制寄存器
看门狗定时器的相关设置是通过写看门狗定时器控制寄存器P_WDT_Ctrl($32)实现的,其默认初值为#F0h。看门狗定时器控制寄存器的功能如表8.7所列。
bit7 SCKEN:STOP模式下看门狗定时器(即慢速的25 kHz振荡器)使能位。
0=STOP模式下禁止看门狗定时器;
1=STOP模式下使能看门狗定时器。
bit [6:4]WDS[2:O]:看门狗中断时钟选择位。
000=Fslow/128
001=Fslow/256
010=Fslow/512
011=Fslow/1 024
100=Fslow/2 048
101=Fslow/4 096
110=Fslow/8 192
111=Fslow/16 384
Fslow:片内RC振荡频率典型值为25 kHz。
注:寄存器P_WDT_Ctrl进行设置时需要连续写两次才能将值有效写入。
程序正常运行时,需要在规定的时间内清狗,具体操作是向清狗寄存器P_WDT_Clr($10)中写入#55h。该寄存器各个位的功能如表8.8所列。
bit [7:O] WDT_CLR[7:0]:清狗指令。
写操作:#55h到清狗计数器进行清狗操作。
读操作:始终为#00h。
总结:
①可以通过寄存器P_WDT_Ctrl($32h)设置合适的看门狗定时器中断频率。
②在看门狗功能使能的情况下,要在特定的时间间隔内写#55h到寄存器P_WDT_Clr($10)进行清狗操作。
3 看门狗中断
使能看门狗中断的设置步骤如下。
(1)使能看门狗中断。
(2)用“SEI”指令关闭中断。
(3)设置看门狗操作相关的寄存器,如P_INT_Ctrl0中的WDT使能位和P_WDT_Ctrl中的WDT周期。
(4)用“CLI”指令打开中断。
(5)等待中断产生。
【例8.3】设置看门狗定时器。
#F0h
P_WDT_Ctrl
P_WDT_Ctrl
#FFh
P_INT_Flag0
P_jNT_Ctrl0,6
;设置看门狗中断为25 kHz/16 384=1.5 Hz
;清看门狗复位标志
;使能看门狗中断
;打开总中断
发表评论 评论 (1 个评论)