看门狗定时应用
看门狗定时应用
看门狗是什么
看门狗(Watch Dog Timer, WDT) 是一种专门用于监测单片机程序运行状态的芯片。其实质是一个计数器,一般给看门狗一个大数,程序开始运行后,看门狗开始倒计数。如果程序运行正常,过一段时间CPU应发出指令让看门狗复位,重新开始倒计数。如果看门狗减到0,就认为程序没有正常工作,将强制整个系统复位。
CC2530看门狗的相关寄存器
CC253027
看门狗的使用流程:选择模式→选择定时器间隔→放狗→喂狗。
看门狗的模式
1、CC2530的看门狗定时器可工作于定时器模式或看门狗模式**
(1)定时器模式
要在一般定时器模式下设置看门狗定时器,必须把WDCTL.MODE[1:0]位设置为11。此时,看门狗定时器就开始工作,且计数器从0开始递增。当计数器达到选定间隔值时,CPU将IRCON2.WDTIF置1。
在定时器模式下,可以通过写入1 到WDCTL.CLR[0]来清除定时器内容。当定时器被清除后,计数器的内容就置为0。写入00 或01 到WDCTL.MODE[1:0]可停止定时器,并对其清零。
定时器间隔由WDCTL.INT[1:0]位设置。**
注意:当运行在定时器模式时要转换到看门狗模式,首先停止看门狗定时器,然后启动看门狗定时器处于看门狗模式。
(2)看门狗模式
在系统复位之后,看门狗定时器就被禁用。要设置看门狗定时器工作于看门狗模式,必须设置WDCTL.MODE[1:0]位为10,然后看门狗定时器的计数器从0 开始递增。在看门狗模式下,一旦看门狗定时器使能,就不可以禁用定时器。因此,如果看门狗定时器已经运行于看门狗模式下,则再向WDCTL.MODE[1:0]写入00或10就不起作用了。
看门狗定时器运行于一个频率为32.768kHz(当使用32kHz XOSC)的看门狗定时器时钟上。这个时钟频率的超时期限为1.9ms、15.625ms、0.25s 和1s,分别对应64、512、8192 和32768 的计数值设置。如果计数器达到选定定时器的间隔值,则看门狗定时器为系统产生一个复位信号。