點擊次數(shù):1091 更新時間:2018-04-23
幾種ZW20-12F看門狗軟件控制方法的誤區(qū)及解決方法
(1)許多人為了方便,把幾種ZW20-12F看門狗的清除控制指令放在系統(tǒng)的定時中斷服務程序中,以為這樣可以準確清除看門狗。可是設計者應該注意到這樣一個問題,就是MCU即使因為PC指針受干擾出錯,但是定時器不一定會停下來,定時中斷可能根本沒有受到影響,幾種ZW20-12F看門狗依然被定時清除,它形同虛設?;镜慕鉀Q方法就是把清除幾種ZW20-12F看門狗的脈沖控制指令分散到主程序的各個部分中去,同時仿真保證兩脈沖的間隔小于幾種ZW20-12F看門狗溢出周期。
(2)中斷程序中隱含的長執(zhí)行時間,未清除幾種ZW20-12F看門狗,導致系統(tǒng)復位。有一些程序在仿真的時候順利通過了幾種ZW20-12F看門狗的測試,但使用中偶爾感覺到系統(tǒng)有復位現(xiàn)象??赡芫褪侵袛喑瑫r,比如設計了一個通訊程序,根據(jù)對方的要求在一次中斷里發(fā)送全部數(shù)據(jù),一旦沒有注意可能的數(shù)據(jù)長度,就會造成看門狗啟動,使系統(tǒng)存在隱患。解決它很簡單,就是把數(shù)據(jù)接收和發(fā)送中斷都修改為每個中斷只處理一個字節(jié)數(shù)據(jù)。對于其它中斷源也要注意,要盡可能減小中斷程序的執(zhí)行時間,中斷程序只留標志和信息,其它工作留給主程序處理。
(3)循環(huán)程序中隱含超時循環(huán),未能及時清除幾種ZW20-12F看門狗,導致系統(tǒng)復位。有些程序中含有延時、循環(huán)計算等片段,并且入口循環(huán)參數(shù)是由它前面的程序運行結果提供的,在某些未預見到的情況就會出現(xiàn)比較大的入口條件,導致幾種ZW20-12F看門狗超時。尤其對于一些沒有顯示的黑匣子設備,根本感覺不到它偶然的復位。