博客專欄

EEPW首頁 > 博客 > 瑞薩RH850 RTC計時進位異常

瑞薩RH850 RTC計時進位異常

發(fā)布人:美男子玩編程 時間:2024-07-29 來源:工程師 發(fā)布文章

RH850 MCU的RTC(實時時鐘)采用BCD(二進制編碼的十進制)編碼格式,支持閏年自動識別,并具有秒、分、時、日、周、月、年的進位功能。其中,秒和分為60進位,時為12或24進位,周為7進位,日根據(jù)月份不同為28、29、30、31進位,月為12進位,年則為00~99年。


近期,我們在使用瑞薩MCU RH850的RTC時遇到了一個計時進位異常問題。通過UART打印時間變量時,發(fā)現(xiàn)秒和分的進位并非預(yù)期的60進位,而是錯誤地表現(xiàn)為90進位。這一現(xiàn)象引起了我們的關(guān)注。


圖片

然而,使用仿真器直接監(jiān)視RTC內(nèi)部的SEC、MIN等寄存器時,卻發(fā)現(xiàn)它們在達到0x59后正常進位,這表明RTC本身的計時功能并無問題。

仔細觀察后,我們發(fā)現(xiàn)了一個關(guān)鍵規(guī)律:當(dāng)秒數(shù)超過09后,顯示值會直接跳躍到16,然后繼續(xù)遞增。這一現(xiàn)象表明,問題可能出在數(shù)據(jù)格式的轉(zhuǎn)換上。由于RTC內(nèi)部采用BCD編碼格式,而我們在通過UART輸出到串口調(diào)試助手時將其當(dāng)作十進制數(shù)據(jù)處理,導(dǎo)致了顯示上的偏差。

針對這一問題,我們對UART的輸出處理格式進行了相應(yīng)修改。經(jīng)過調(diào)整后,串口調(diào)試助手上顯示的時間終于恢復(fù)正常,驗證了我們的分析是正確的。

綜上所述,RH850 MCU的RTC內(nèi)部寄存器采用獨特的BCD編碼格式,這要求我們在處理相關(guān)數(shù)據(jù)時必須特別注意格式轉(zhuǎn)換。否則,很容易引發(fā)類似的誤解和問題。

*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: 瑞薩 RH850

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉