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小時,具體如下表所示:

