用nRF52的RTC實現萬年歷


 nRF52系列芯片內部有3個RTC,其中RTC0是給協議棧softdevice用,RTC1分配給 App timer用,剩下的RTC2可以用來實現萬年歷功能。

 代碼基於SDK15.0,在BLE_APP_UART例程上進行添加和修改:

1)   在工程Application目錄添加ble_calendar.c 並包含對應頭文件和目錄;

2)   詳細代碼參看: https://pan.baidu.com/s/1BlTMcz5qnfZ3SjscczoOlw ,提取碼:k97k

3)   用nrf Toolbox -> UART工具編譯三條命令,分別發‘s’  ’g’   ‘u’  

4)   用putty 和 RTT都可以查看打印結果

RTC寄存器和分頻系數設置方法:

 

 Example:

計算 COUNTER frequency 8 Hz (125 ms counter period)

PRESCALER = round(32.768 kHz / 8 Hz) – 1 = 4095

f RTC = 8 Hz

125 ms counter period 

RTC Counter 為24 bit, Prescaler 值為12 bit 因此最小resolution 為30.517us, 最大為125ms, 按最大resolution 12bit 計算的話最長時間可以計到582.542小時,具體如下表所示:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM