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