微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > LPC2103学习之看门狗

LPC2103学习之看门狗

时间:11-21 来源:互联网 点击:
晚上的时候,接着学习了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教材》

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top