用nRF52的RTC实现万年历

本文详细介绍了nRF52系列芯片中RTC的使用方法,包括如何利用RTC2实现万年历功能。通过在SDK15.0基础上的修改,添加ble_calendar.c文件,并设置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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值