電磁流量計設(shè)計程序研究與探討 八十二
電磁流量計一般來說看門狗定時器的硬件電路為一獨立于CPU之外的單穩(wěn)部件,可用單穩(wěn)電路構(gòu)成,也可用自帶脈沖源的計數(shù)器構(gòu)成。CPU正常工作時每隔一段時間就輸出一個脈沖,將單穩(wěn)態(tài)系統(tǒng)觸發(fā)到暫穩(wěn)態(tài)系統(tǒng)。當(dāng)CPU陷入死循環(huán)后,再也不去觸發(fā)單穩(wěn)態(tài)系統(tǒng)了,單穩(wěn)態(tài)系統(tǒng)就可順利返回穩(wěn)態(tài)。利用它返回穩(wěn)態(tài)時輸出的信號作為復(fù)位信號,就可以使CPU退出死循環(huán)。
程序進(jìn)入while循環(huán)后,設(shè)置看門狗定時間隔為1s,同時計數(shù)值清零,然后執(zhí)行特定功能的程序主體,如此反復(fù)執(zhí)行。如果特定功能程序主體部分的執(zhí)行.時間加上這段時間所執(zhí)行的所有中斷處理時間之和小于設(shè)定的看門狗定時間隔1s,那么程序總是正常進(jìn)行的;如果系統(tǒng)受到干擾,程序跑飛或陷入死循環(huán),這時執(zhí)行不至UWDTCTL=WDY ARST_1000;從而計數(shù)器沒有被清零,當(dāng)計數(shù)器溢出時WDTIFG置位,產(chǎn)生系統(tǒng)PUC信號復(fù)位,這樣就脫離了死循環(huán)狀態(tài)。
由于系統(tǒng)的PUC信號不會將WDTIFG位清零(POR信號將WDTIFG位清零),所以可以在復(fù)位時通過檢測wDTIFG是否置位來判斷復(fù)位產(chǎn)生源:若WDTIFG為置位狀態(tài),則為看門狗溢出復(fù)位或看門狗訪問出錯復(fù)位;若WDTIFG為復(fù)位狀態(tài),則為非看門狗復(fù)位。
電磁流量計