1、不能夠在中斷函數(shù)中喂狗,因?yàn)榧词钩绦蚺茱w了,中斷模塊和中斷函數(shù)依然能夠正常運(yùn)行,如果在中斷函數(shù)里面喂狗,即使跑飛,也有可能因?yàn)樵谥袛嗪瘮?shù)(比如定時器中斷)中喂了狗而不產(chǎn)生復(fù)位信號,因?yàn)橥庠O(shè)的運(yùn)行有時可以獨(dú)立于程序。
2、喂狗之前記得要對寄存器進(jìn)行解鎖操作unlock,喂狗之后要進(jìn)行加鎖lock。 3、關(guān)于看門狗寄存器的所有操作都要有解鎖(unlock)的操作,為了方便區(qū)分起見,最好對看門狗初始化之前就要解鎖(unlock),初始化后加鎖(lock)。關(guān)于看門狗的中斷函數(shù)也要做同樣的操作,先解鎖(unlock),然后清除相關(guān)標(biāo)志位,保證操作有效。 4、在主程序的每一個處理流程都要適當(dāng)添加一些喂狗指令 5、對于長延遲的函數(shù),要注意喂狗方式,假如你在進(jìn)行某個操作1.8秒,如下圖,全局變量countMs是在Timer0定時器1ms的中斷函數(shù)中進(jìn)行自加,在主函數(shù)中用查詢方式來確認(rèn)是否大概達(dá)到你要求的時間,以下是每50ms喂狗一次,因?yàn)樵诳撮T狗初始化時,看門狗定時器是102.4ms溢出一次。
|