本發明涉及mcu內部計時器計時自校正,具體是一種mcu內部計時器計時自校正方法及系統。
背景技術:
1、實時時鐘(rtc)模塊因其能夠提供穩定且精確的計時服務,在家用電器領域得到了廣泛應用和行業的普遍認可。rtc通過內置的晶振和計時邏輯,能夠保持長時間的計時準確性。然而,盡管rtc模塊的精準計時性能受到行業內的普遍贊譽,但其同樣面臨著功能失效的風險。rtc失效可能源于多種因素,如晶振老化、電源故障或環境干擾等,一旦rtc失效,將導致電器失去可靠的計時基準,進而影響整個系統的正常運行。在rtc失效的情況下,許多家用電器會依賴微控制器(mcu)內部的計時器作為備用計時手段。mcu內部的計時器通常通過對外部晶振輸出的脈沖波形進行計數來實現計時功能。然而,由于不同mcu之間存在的制造差異以及溫度的變化,mcu內部的計時器也會受到一定影響,導致計時準確性的下降。
技術實現思路
1、針對上述缺陷,本發明提出了一種mcu內部計時器計時自校正方法及系統,目的在于解決在rtc失效的情況下,當使用mcu內部的計時器進行計時時,由于不同mcu之間存在的制造差異以及溫度的變化,mcu內部的計時器也會受到一定影響,導致計時準確性下降的問題。
2、為達此目的,本發明采用以下技術方案:
3、一種mcu內部計時器計時自校正方法,包括以下步驟:
4、步驟s1:設置溫漂補償表和rtc的定時時間t0,其中,溫漂補償表包括若干mcu歷史測試溫度和溫漂補償值,每個mcu歷史測試溫度對應一個溫漂補償值,mcu歷史測試溫度是指單位時間內mcu歷史周邊溫度的平均值,溫漂補償值是指單位時間內mcu內部計時器補償的計數次數;
5、步驟s2:判斷rtc的功能是否正常,若rtc的功能正常,則觸發rtc和mcu內部計時器同步開啟計時,并獲取rtc的累計計時時間t1和mcu內部計時器的累計計時時間t2,并判斷rtc的累計計時時間t1是否到達rtc的定時時間t0,若是,則獲取t0內mcu周邊溫度,并計算t2與t0的差值d以及t0內mcu周邊溫度的平均值并根據d和對溫漂補償表進行更新;
6、若rtc的功能不正常,則觸發mcu內部計時器開啟計時,并獲取mcu內部計時器的累計計時時間t2和t2內mcu周邊溫度,并計算t2內mcu周邊溫度的平均值并根據從溫度補償表中獲取其對應的溫漂補償值,并將對應的溫漂補償值補償至t2對應的計數次數,以完成mcu內部計時器計時的自校正。
7、優選地,在步驟s2中,根據t2與t0的差值d以及t0內mcu周邊溫度的平均值對溫漂補償表進行更新,具體包括以下子步驟:
8、步驟s21:根據t2與t0的差值d以及rtc的定時時間t0,計算t0內mcu周邊溫度的平均值對應的溫漂補償值toffset,具體的計算公式如下:
9、
10、步驟s22:根據t0內mcu周邊溫度的平均值計算t0內mcu周邊溫度的方差σ2;
11、步驟s23:判斷t0內mcu周邊溫度的方差σ2是否小于方差閾值,若是,則將t0的mcu周邊溫度的平均值對應的溫漂補償值toffset儲存于溫漂補償表,以完成溫漂補償表的更新;若否,則不進行儲存操作。
12、優選地,在步驟s2中,還包括以下步驟:
13、當rtc的累計計時時間t1未到達rtc的定時時間t0時,則繼續mcu內部計時器的計時。
14、本申請的另一方面提供了一種mcu內部計時器計時自校正系統,所述系統包括:
15、第一設置模塊,用于設置溫漂補償表,其中,溫漂補償表包括若干mcu歷史測試溫度和溫漂補償值,每個mcu歷史測試溫度對應一個溫漂補償值,mcu歷史測試溫度是指單位時間內mcu歷史周邊溫度的平均值,溫漂補償值是指單位時間內mcu內部計時器補償的計數次數;
16、第二設置模塊,用于設置rtc的定時時間t0;
17、第一判斷模塊,判斷rtc的功能是否正常,若rtc的功能正常,則同時執行第一觸發模塊和第二觸發模塊,并執行第一獲取模塊和第二獲取模塊,并執行第二判斷模塊;若rtc的功能不正常,則執行第二觸發模塊,并執行第二獲取模塊和第四獲取模塊,并執行第三計算模塊,并執行第五獲取模塊,并執行補償模塊,以完成mcu內部計時器計時的自校正;
18、第一觸發模塊,用于觸發rtc開啟計時;
19、第二觸發模塊,用于觸發mcu內部計時器開啟計時;
20、第一獲取模塊,用于rtc的累計計時時間t1;
21、第二獲取模塊,用于mcu內部計時器的累計計時時間t2;
22、第二判斷模塊,用于判斷rtc的累計計時時間t1是否到達rtc的定時時間t0,若是,則執行第三獲取模塊,并執行第一計算模塊和第二計算模塊,并執行更新模塊;
23、第三獲取模塊,用于獲取t0內mcu周邊溫度;
24、第一計算模塊,用于計算t2與t0的差值d;
25、第二計算模塊,用于計算t0內mcu周邊溫度的平均值
26、更新模塊,用于根據d和對溫漂補償表進行更新;
27、第四獲取模塊,用于獲取t2內mcu周邊溫度;
28、第三計算模塊,用于計算t2內mcu周邊溫度的平均值
29、第五獲取模塊,用于根據從溫度補償表中獲取其對應的溫漂補償值;
30、補償模塊,用于將對應的溫漂補償值補償至t2對應的計數次數。
31、優選地,所述更新模塊包括:
32、第一計算子模塊,用于根據t2與t0的差值d以及rtc的定時時間t0,計算t0內mcu周邊溫度的平均值對應的溫漂補償值toffset,具體的計算公式如下:
33、
34、第二計算子模塊,用于根據t0內mcu周邊溫度的平均值計算t0內mcu周邊溫度的方差σ2;
35、判斷子模塊,用于判斷t0內mcu周邊溫度的方差σ2是否小于方差閾值,若是,則執行儲存子模塊,以完成溫漂補償表的更新;若否,則不執行儲存子模塊;
36、儲存子模塊,用于將t0的mcu周邊溫度的平均值對應的溫漂補償值toffset儲存于溫漂補償表。
37、優選地,在所述第二判斷模塊中,當rtc的累計計時時間t1未到達rtc的定時時間t0時,則繼續執行第二觸發模塊。
38、本申請實施例提供的技術方案可以包括以下有益效果:
39、本方案中通過設置溫漂補償表,在rtc失效且僅依賴mcu內部計時器進行計時時,采集mcu周邊溫度并計算mcu周邊溫度的平均值,并從溫漂補償表中獲取mcu周邊溫度的平均值對應的溫漂補償值進行mcu內部計時器計時補償,能夠有效提高mcu內部計時器計時的準確性,從而確保家用電器產品的穩定性。
1.一種mcu內部計時器計時自校正方法,其特征在于:包括以下步驟:
2.根據權利要求1所述的一種mcu內部計時器計時自校正方法,其特征在于:在步驟s2中,根據t2與t0的差值d以及t0內mcu周邊溫度的平均值對溫漂補償表進行更新,具體包括以下子步驟:
3.根據權利要求1所述的一種mcu內部計時器計時自校正方法,其特征在于:在步驟s2中,還包括以下步驟:
4.一種mcu內部計時器計時自校正系統,使用如權利要求1-3任意一項所述mcu內部計時器計時自校正方法,其特征在于:所述系統包括:
5.根據權利要求4所述的一種mcu內部計時器計時自校正系統,其特征在于:所述更新模塊包括:
6.根據權利要求4所述的一種mcu內部計時器計時自校正系統,其特征在于:在所述第二判斷模塊中,當rtc的累計計時時間t1未到達rtc的定時時間t0時,則繼續執行第二觸發模塊。