㈠ 「STC8A8K64D4開發板」第2-7講:看門狗定時器
學習目的了解看門狗定時器原理
STC8A8K64D4的看門狗功能較簡單,使用時僅需配置看門狗控制寄存器「WDT_CONTR」。此寄存器負責設置看門狗功能,其分頻系數決定了看門狗的溢出時間,計算公式為S。
以下是不同主頻與分頻系數對應的時間表,以12M和24M主頻為例,說明不同分頻系數下的看門狗溢出時間。
表1:主頻和分頻系數對應時間
配置看門狗應用步驟
配置看門狗時,只需調整「WDT_CONTR」寄存器即可。配置前需明確以下幾點,配置完成後,將「EN_WDT」使能位設為1以啟動看門狗。一旦程序運行異常,無法正常「喂狗」,看門狗將溢出並強制復位單片機,使其重新運行程序。
看門狗實驗內容
設定看門狗超時時間為2.1秒。程序運行時,若2.1秒內未進行喂狗操作,系統將復位。在IDLE模式下,看門狗定時器不計數。為觀察復位現象,程序啟動後,LED D1閃爍4次,指示系統啟動,之後初始化並啟動看門狗。通過按動按鍵KEY1執行喂狗操作。若在2.1秒內連續喂狗,則系統不復位,反之則會復位重新啟動,此時LED D1將繼續閃爍4次。
代碼編寫
在「main.c」文件中使用了「wdt.c」文件中的函數,因此需引用頭文件「wdt.h」。初始化代碼清單包括配置看門狗溢出時間為2.1秒,初始化並啟動看門狗。主函數中加入系統啟動指示,便於觀察系統復位。接著調用wdt_init()函數初始化並啟動WDT,循環查詢按鍵S3狀態,當檢測到按鍵S3按下時執行喂狗操作。
代碼清單:引用頭文件、初始化並啟動看門狗、主函數
硬體連接
實驗需連接LED指示燈和按鍵。使用跳線帽短接復用引腳的指示燈(D1和D2)和按鍵(KEY1)。圖2顯示了跳線帽短接方式。
圖2:跳線帽短接
實驗步驟
㈡ 求大神 stc15w4k48s461S4單片機,啟動看門狗後,要怎麼關閉看門狗
遇到一樣的問題,上網找了好久沒有這方面的權威答案,於是今天下午直接打電話到STC公司問技術人員,最後工程師給的答案是:STC單片機的看門狗一旦開啟後就不能關閉!!!不能關閉!!!這是官方給的答案,只可以喂狗,但不能關閉哦!!!
㈢ 51單片機看門狗寄存器設置。
首先要看是什麼單片機,不同的單片機的看門狗的溢出時間是不同的,但不會有這么長的單片機的。STC的單片機晶振是11.0592時,最長的溢出時間是9.1022秒,這就要求必須在溢出時間內喂一次,所以,是不可能設置成30秒的。不過,為什麼要設置這長的時間呢,假設可以設置成這么長的時間,在實際應用假設單片機進入死機狀態了,需要30多秒以後看門狗才能復位,這么長的時間,復位還有什麼意義了,如果是單片機控制重要的設備,這么長的時間早就出現嚴重事故了,復位已經不起作用了。所以,實際應用中,喂狗時間最好要小於1秒,才能真正起到保護的作用。