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