晚上的时候,接着学习了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教材》
天天都进步一点。