LPC2103学习之看门狗

晚上的时候,接着学习了LPC2103的看门狗。学习


看门狗的概述:spa

看门狗包括一个4分频的预分频器和一个32位计数器,时钟经过预分频器输入定时器,定时器递减(与其余的定时器有区别哦)。定时器递减的最小值为0XFF,也就是若是你设置一个小于0xFF的值的话,系统装入定时器的也将会是0XFF。因此看门狗的最小间隔为(Tpclk x 4 x256),最大间隔为(Tpclk x 2的32次方 x 4)。看门狗的使用方法以下:it

1.在WDTC寄存器中设置看门狗定时器的固定装载值。软件

2.在WDMOD寄存器中设置模式。硬件

3.经过向WDFEED寄存器顺序写入0XAA和0X55启动看门狗。定时器

4,在看门狗计数器向下溢出以前应当再次喂狗以防止复位中断。程序

当看门狗定时器向下溢出时,程序计数器将从0x00000000处开始运行,就跟外部复位同样。能够检查看门狗超时标志(WDTOF)来肯定看门狗是否产生复位条件。WDTOF必须由软件清零。下图是看门狗的内部结构方框图。方法


接着介绍关于看门狗的相关寄存器im

WDMOD寄存器img



看门狗的操做就是经过其中的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教材》


天天都进步一点。得意

相关文章
相关标签/搜索