晚上的时分,接着学习了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教材》