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

 

转载于:https://www.cnblogs.com/lim11/p/11133253.html

你可能感兴趣的:(用nRF52的RTC实现万年历)