專利名稱:避免因電能表動態(tài)自檢而發(fā)生錯誤的方法
技術(shù)領域:
本發(fā)明涉及電能表領域,特別涉及一種避免因電能表動態(tài)自檢而發(fā)生錯誤的方法。
背景技術(shù):
電能表的動態(tài)自檢是指系統(tǒng)正常運行時的自檢工作,可以定在某一固定時刻進行,一般只進行關鍵核心部分的器件的自檢,如單片機內(nèi)部、外部RAM等。進行動態(tài)自檢會帶來一定的風險,因為在進行動態(tài)自檢時,內(nèi)存的數(shù)據(jù)會被改寫, 如果此時有中斷發(fā)生,這些被改寫的數(shù)據(jù)就可能被中斷程序讀取,造成意想不到的錯誤。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種避免因中斷程序讀取到電能表動態(tài)自檢時改寫的內(nèi)存數(shù)據(jù)而發(fā)生錯誤的避免因電能表動態(tài)自檢而發(fā)生錯誤的方法。本發(fā)明解決上述問題所采用的技術(shù)方案為一種避免因電能表動態(tài)自檢而發(fā)生錯誤的方法,它包括以下步驟
1)、每次開始動態(tài)自檢時,先在中斷服務程序中設一個動態(tài)自檢標志,動態(tài)自檢結(jié)束后,把中斷服務程序中的動態(tài)自檢標志去除;
2)、檢測中斷,有中斷出現(xiàn),中斷服務程序開始運行;
3)、查詢中斷服務程序中是否有動態(tài)自檢標志,若是,則執(zhí)行步驟(4);若不是,則跳到步驟(6);
4)、將內(nèi)存中的動態(tài)自檢數(shù)據(jù)緩存;
5)、恢復電能表內(nèi)存數(shù)據(jù)為動態(tài)自檢前數(shù)據(jù);
6)、處理中斷;
7)、中斷處理完畢,查詢中斷服務程序中是否有動態(tài)自檢標志,若是,則執(zhí)行步驟(8); 若不是,則跳到步驟(9);
8)、將緩存的動態(tài)自檢數(shù)據(jù)恢復至內(nèi)存中;
9)、結(jié)束。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于通過查詢動態(tài)自檢標志是否存在,可以有效的防止中斷程序讀取到電能表動態(tài)自檢時改寫的內(nèi)存數(shù)據(jù),防止錯誤發(fā)生。
圖為本發(fā)明電能表中避免因動態(tài)自檢而發(fā)生錯誤的方法中中斷出現(xiàn)后的處理流程圖。
具體實施例方式為便于說明本發(fā)明的處理方法,下面結(jié)合附圖,對本發(fā)明電能表中避免因動態(tài)自檢而發(fā)生錯誤的方法做詳細說明
一種避免因電能表動態(tài)自檢而發(fā)生錯誤的方法,它包括以下步驟
1)、每次開始動態(tài)自檢時,先在中斷服務程序中設一個動態(tài)自檢標志,動態(tài)自檢結(jié)束后,把中斷服務程序中的動態(tài)自檢標志去除;
2)、檢測中斷,有中斷出現(xiàn),中斷服務程序開始運行;
3)、查詢中斷服務程序中是否有動態(tài)自檢標志,若是,則執(zhí)行步驟(4);若不是,則跳到步驟(6);
4)、將內(nèi)存中的動態(tài)自檢數(shù)據(jù)緩存;
5)、恢復電能表內(nèi)存數(shù)據(jù)為動態(tài)自檢前數(shù)據(jù);
6)、處理中斷;
7)、中斷處理完畢,查詢中斷服務程序中是否有動態(tài)自檢標志,若是,則執(zhí)行步驟(8); 若不是,則跳到步驟(9);
8)、將緩存的動態(tài)自檢數(shù)據(jù)恢復至內(nèi)存中;
9)、結(jié)束。 通過上述方法,可以有效的防止中斷程序讀取到電能表動態(tài)自檢時改寫的內(nèi)存數(shù)據(jù),防止錯誤發(fā)生。
權(quán)利要求
1. 一種避免因電能表動態(tài)自檢而發(fā)生錯誤的方法,其特征在于它包括以下步驟1)、每次開始動態(tài)自檢時,先在中斷服務程序中設一個動態(tài)自檢標志,動態(tài)自檢結(jié)束后,把中斷服務程序中的動態(tài)自檢標志去除;2)、檢測中斷,有中斷出現(xiàn),中斷服務程序開始運行;3)、查詢中斷服務程序中是否有動態(tài)自檢標志,若是,則執(zhí)行步驟(4);若不是,則跳到步驟(6);4)、將內(nèi)存中的動態(tài)自檢數(shù)據(jù)緩存;5)、恢復電能表內(nèi)存數(shù)據(jù)為動態(tài)自檢前數(shù)據(jù);6)、處理中斷;7)、中斷處理完畢,查詢中斷服務程序中是否有動態(tài)自檢標志,若是,則執(zhí)行步驟(8); 若不是,則跳到步驟(9);8)、將緩存的動態(tài)自檢數(shù)據(jù)恢復至內(nèi)存中;9)、結(jié)束。
全文摘要
本發(fā)明公開了一種避免因電能表動態(tài)自檢而發(fā)生錯誤的方法,它包括以下步驟1)每次開始動態(tài)自檢時,先在中斷服務程序中設一個動態(tài)自檢標志,動態(tài)自檢結(jié)束后,把中斷服務程序中的動態(tài)自檢標志去除;2)檢測中斷,有中斷出現(xiàn),中斷服務程序開始運行;3)查詢中斷服務程序中是否有動態(tài)自檢標志;4)將內(nèi)存中的動態(tài)自檢數(shù)據(jù)緩存;5)恢復電能表內(nèi)存數(shù)據(jù)為動態(tài)自檢前數(shù)據(jù);6)處理中斷;7)查詢中斷服務程序中是否有動態(tài)自檢標志;8)將緩存的動態(tài)自檢數(shù)據(jù)恢復至內(nèi)存中;9)結(jié)束。通過查詢動態(tài)自檢標志是否存在,可以有效的防止中斷程序讀取到電能表動態(tài)自檢時改寫的內(nèi)存數(shù)據(jù),防止錯誤發(fā)生。
文檔編號G01R35/04GK102426347SQ20111033720
公開日2012年4月25日 申請日期2011年10月31日 優(yōu)先權(quán)日2011年10月31日
發(fā)明者何昂, 周忠祥, 胡寧, 鄭堅江 申請人:寧波三星電氣股份有限公司