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