LPC2103学习之看门狗
看门狗的概述:
看门狗包括一个4分频的预分频器和一个32位计数器,时钟通过预分频器输入定时器,定时器递减(与其他的定时器有区别哦)。定时器递减的最小值为0XFF,也就是如果你设置一个小于0xFF的值的话,系统装入定时器的也将会是0XFF。所以看门狗的最小间隔为(Tpclk x 4 x256),最大间隔为(Tpclk x 2的32次方 x 4)。看门狗的使用方法如下:
1.在WDTC寄存器中设置看门狗定时器的固定装载值。
2.在WDMOD寄存器中设置模式。
3.通过向WDFEED寄存器顺序写入0XAA和0X55启动看门狗。
4,在看门狗计数器向下溢出之前应当再次喂狗以防止复位中断。
当看门狗定时器向下溢出时,程序计数器将从0x00000000处开始运行,就跟外部复位一样。可以检查看门狗超时标志(WDTOF)来确定看门狗是否产生复位条件。WDTOF必须由软件清零。下图是看门狗的内部结构方框图。
接着介绍关于看门狗的相关寄存器
WDMOD寄存器
看门狗的操作就是通过其中的WDEN位与WDRESET位来控制的。
注意的是,一旦WDEN与WDRESET置位。就无法使用软件将其清零。这两个标志必须由外部复位和看门狗定时器溢出清零。另外,将WDEN置位只是使能WDT,但是并没有启动WDT,第一次喂狗才是启动WDT。
WDTOF 看门狗发生超时,看门狗超时标志置位,该标志由软件清零。
WDINT 看门狗发生超时,看门狗中断标志置位。任何复位都会使该位清零无法使用软件清零。因此,发生看门狗中断时,只能通过禁止看门狗中断的方式返回。
WDTC寄存器:
WDTC寄存器决定看门狗超时值。当喂狗时序产生时,WDTC的内容重新装入看门狗定时器。它是一个32位的定时器,最小值为0xFF。
WDFEED寄存器:
向该寄存器写入0XAA,然后写入0X55会使WDTC得值重新装入看门狗定时器。如果看门狗通过WDMOD使能,该操作还将启动看门狗运行。在看门狗溢出之前,必须完成一次正确的喂狗时序。不正确喂狗时序之后的第二个pclk周期,看门狗复位/中断被触发。
WDTV寄存器:
WDTV寄存器专门用于读取当前看门狗定时器的当前值。
最后说明关于看门狗的中断。
只要启动WDT,那么WDT就不会停止,而且,WDT溢出后便会促发中断,下图是WDT中断与向量中断控制器的关系
需要说明的是,WDT的中断标志位无法通过软件清零,只能拖过硬件复位清零。因此,当发生WDT中断时,只能使能通过禁止WDT中断的方式返回。
以上即是LPC2103看门狗。参考《EasyARM2103教材》
LPC2103看门 相关文章:
- LPC2103之看门狗定时器(11-29)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)