單片機看門狗其實就是一個特別的定時器,是內置在單片機里面的一個定時器。起到定時監控的作用,如果定時器溢出,就會讓單片機復位重啟,在一定程度上避免程序由于進入死循環或者跑飛之后沒有辦法正常工作,在很多單片機里面都內置了看門狗。
單片機看門狗功能打開后,計時器開始計時。如果計時值超過設定的最大值,單片機會產生內部復位,單片機會重新初始化,程序會重新運行。在程序循環中清除看門狗的計時器。程序正常運行,每個循環都會執行看門狗的計時清零指令,計時器不會溢出。只有程序運行或死循環后,單片機看門狗的指令才會執行,單片機才會復位。
軟件看門狗大體的實現方式是定時器模擬,我們在主程序中喂狗,就可以對定時器進行計數器清零即可,當我們沒有及時喂狗,會進入定時器中斷,在中斷中我們可以觸發軟件復位,或者通過程序跳轉到程序入口處。但是軟件看門狗由于其本質也是軟件,可能會遇到中斷或者無法觸發的一場,復位mcu就會失效。
ALL RIGHT RESERVED 2022. 粵ICP備17095549號 技術支持: 牛商股份 百度統計 粵公網安備 44030402004503號