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教材》


天天都進步一點。得意

相關文章
相關標籤/搜索