1、不能夠在中斷函數中喂狗,因為即使程序跑飛了,中斷模塊和中斷函數依然能夠正常運行,如果在中斷函數里面喂狗,即使跑飛,也有可能因為在中斷函數(比如定時器中斷)中喂了狗而不產生復位信號,因為外設的運行有時可以獨立于程序。
2、喂狗之前記得要對寄存器進行解鎖操作unlock,喂狗之后要進行加鎖lock。 3、關于看門狗寄存器的所有操作都要有解鎖(unlock)的操作,為了方便區分起見,最好對看門狗初始化之前就要解鎖(unlock),初始化后加鎖(lock)。關于看門狗的中斷函數也要做同樣的操作,先解鎖(unlock),然后清除相關標志位,保證操作有效。 4、在主程序的每一個處理流程都要適當添加一些喂狗指令 5、對于長延遲的函數,要注意喂狗方式,假如你在進行某個操作1.8秒,如下圖,全局變量countMs是在Timer0定時器1ms的中斷函數中進行自加,在主函數中用查詢方式來確認是否大概達到你要求的時間,以下是每50ms喂狗一次,因為在看門狗初始化時,看門狗定時器是102.4ms溢出一次。
|