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