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