新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > LPC2103學習之看門狗

        LPC2103學習之看門狗

        作者: 時間:2016-11-21 來源:網絡 收藏
        晚上的時候,接著學習了LPC2103看門狗。

        本文引用地址:http://www.104case.com/article/201611/319108.htm

        看門狗的概述:

        看門狗包括一個4分頻的預分頻器和一個32位計數器,時鐘通過預分頻器輸入定時器,定時器遞減(與其他的定時器有區別哦)。定時器遞減的最小值為0XFF,也就是如果你設置一個小于0xFF的值的話,系統裝入定時器的也將會是0XFF。所以看門狗的最小間隔為(Tpclk x 4 x256),最大間隔為(Tpclk x 2的32次方 x 4)??撮T狗的使用方法如下:

        1.在WDTC寄存器中設置看門狗定時器的固定裝載值。

        2.在WDMOD寄存器中設置模式。

        3.通過向WDFEED寄存器順序寫入0XAA和0X55啟動看門狗。

        4,在看門狗計數器向下溢出之前應當再次喂狗以防止復位中斷。

        當看門狗定時器向下溢出時,程序計數器將從0x00000000處開始運行,就跟外部復位一樣??梢詸z查看門狗超時標志(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中斷的方式返回。

        以上即是狗。參考《EasyARM2103教材》



        關鍵詞: LPC2103看門

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 白沙| 金华市| 翁牛特旗| 科尔| 易门县| 华容县| 临泉县| 乾安县| 延川县| 沁源县| 营山县| 和平区| 枝江市| 清新县| 惠来县| 隆昌县| 弥渡县| 同仁县| 田林县| 织金县| 施甸县| 鲁山县| 定日县| 琼结县| 舟山市| 锡林浩特市| 凤台县| 海伦市| 佛教| 桃江县| 嘉义市| 荆门市| 武川县| 罗甸县| 深州市| 全南县| 同仁县| 汾西县| 福州市| 炎陵县| 吴桥县|