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