有關實時鐘讀取的偏方 作者: 時間:2012-06-29 來源:網(wǎng)絡 加入技術交流群 掃碼加入和技術大咖面對面交流海量資料庫查詢 收藏 目前多用IIC等串行輸出的實時鐘而大多MCU無硬件IIC,只能通過IO模擬,如果每秒讀一次占用MCU也不算少,即使帶硬件IIC(C8051F02X等)采用中斷處理因對IIC狀態(tài)標志的判斷散轉也要若干時間。在大部分情況下,可以有個省事的處理方式:只在復位后讀一次完整時間數(shù)據(jù),此后時間更新通過MCU定時器(必須設置為自動重裝方式以獲得與晶體穩(wěn)定度一致的精確度),如果對讀一次的數(shù)據(jù)不放心,可以通過判斷包含F(xiàn)F等非法數(shù)據(jù)來重讀(按我體會,數(shù)據(jù)錯讀的都是FF,而重讀基本無必要,因為大多是RTC內部數(shù)據(jù)已被沖壞了),也可用多次讀方式(個人覺得象畫蛇添足,我從未這樣處理)。當使用MCU的定時器來處理時間,花費比IIC要省的多,如果儀器每天都開關,第二天開機獲得的時間是由RTC自己維持運行的數(shù)據(jù)。如果你要連續(xù)工作一個月以上,可能程序上要處理大小月等問題,或是每當MCU計到23時01分重讀一次RTC(最好避免在整24時,因可能涉及日、月、年的更新)。附帶說:MCU定時器自動重裝方式精度與晶體穩(wěn)定度一致,無累積誤差。也可采取每分鐘或每小時讀一次方式,期間計時仍然由MCU處理。
評論