登录站点

用户名

密码

单片机中的看门狗定时器

1已有 666 次阅读  2009-10-14 10:18

1  看门狗定时器结构

 

看门狗定时器用来产生定时信号,从而判断系统是否运行正常,其时钟源来自片内RC振荡电路,振荡频率典型值为25 kHz。看门狗定时器的中断频率可以通过软件设置改变(看门狗定时器控制寄存器P_WDT_Ctrl设置),当其连续中断8次,便会溢出产生看门狗复位信号,复位CPU。其结构如图811所示。
 

2  看门狗定时器控制寄存器

 

看门狗定时器的相关设置是通过写看门狗定时器控制寄存器P_WDT_Ctrl($32)实现的,其默认初值为#F0h。看门狗定时器控制寄存器的功能如表87所列。



bit7  SCKENSTOP模式下看门狗定时器(即慢速的25 kHz振荡器)使能位。

 

0=STOP模式下禁止看门狗定时器;

 

1=STOP模式下使能看门狗定时器。

 

bit [64]WDS[2O]:看门狗中断时钟选择位。

 

    000=Fslow128

    001=Fslow256

    010=Fslow512

    011=Fslow1 024

    100=Fslow2 048

    101=Fslow4 096

    110=Fslow8 192

    111=Fslow16 384

Fslow:片内RC振荡频率典型值为25 kHz

 

注:寄存器P_WDT_Ctrl进行设置时需要连续写两次才能将值有效写入。

 

程序正常运行时,需要在规定的时间内清狗,具体操作是向清狗寄存器P_WDT_Clr($10)中写入#55h。该寄存器各个位的功能如表88所列。



    bit [7O] WDT_CLR[70]:清狗指令。

           写操作:#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)等待中断产生。

 

【例83】设置看门狗定时器。

 

#F0h

P_WDT_Ctrl

P_WDT_Ctrl

#FFh

P_INT_Flag0

P_jNT_Ctrl06

;设置看门狗中断为25 kHz16 384=15 Hz

;清看门狗复位标志

;使能看门狗中断

;打开总中断

上一篇: 定时器x(定时器模式)的应用实例 下一篇: SPI串行接口读写E2PROM

分享 举报

发表评论 评论 (1 个评论)

涂鸦板