Nordic52810入门篇 - 实时时钟(RTC)

本文深入探讨了RTC-24位实时时钟计数器的工作原理,包括RTC0与RTC1模块的区别,以及如何通过任务事件回调实现精确计时。详细介绍了COUNTER、PRESCALER和CC寄存器的作用,并提供了基于S112协议栈的示例代码。

RTC-24位实时时钟计数器,RTC模块使用低频时钟LCFK,52810有两个RTC模块 RTC0与RTC1

声明:蓝牙协议栈使能后将会使用RTC0;APP_TIMER库使用的是RTC1,所以当APP_TIMER组件使能后,RTC1不可以直接使用

一、原理框图

如下图,左边是开始START、停止STOP、清除CLEAR、触发TRIG 任务,右边可触发三种事件(回调中断)

  • TICK滴答事件:计数器COUNTER每计数一次会进行事件回调(中断),COUNTER计数值累加1,默认禁用

  • OVRFLW溢出事件:计数器COUNTER计数值溢出后触发(0xFFFFFF:16777215),默认禁用

  • COMPARE比较事件:通过设置CC寄存器与COUNTER比值进行触发比较中断,默认禁用

二、寄存器介绍

COUNTER(0x504):计数值寄存器,可读取当前计数值

PRESCALER(0x508):分频寄存器,12位,分频公式:fRTC [kHz] = 32.768 / (PRESCALER + 1 )

CC[0-3](0x540-0x54C):比较寄存器,计数器的数值和CC的相同时,会触发事件或中断

三、总结

由于LZ没有进行裸跑,基于S112的协议栈运行的,而使用任务事件回调的方式多多少少会有us级别的误差;蓝牙协议栈使能后RTC0的COUNTER计数器以30.517us分辨率计数,则每次通过读取COUNTER寄存器的值进行计时;由于COUNTER是24位,溢出值为16777215*30.517us = 512秒,溢出后进行进位

贴上代码

int main(void)
{

    // Initialize.
    ble_stack_init();

    while(1)
    {
        SEGGER_RTT_printf(0,"RTC0 Time = %d\r\n",(NRF_RTC0->COUNTER)>>15);
        nrf_delay_ms(1000);
    }
    return 0;
}

打印出来的也是1秒进行计时

 

### Nordic nRF52810 的硬件规格 nRF52810 是一款由 Nordic Semiconductor 推出的低功耗蓝牙 (Bluetooth Low Energy, BLE) SoC,适用于物联网设备和其他无线应用。其主要特点包括: - **处理器核心**: 基于 ARM Cortex-M0+ 架构,运行频率高达 32 MHz[^1]。 - **内存配置**: 集成了 64 KB Flash 和 16 KB RAM,适合轻量级的应用场景。 - **射频性能**: 支持 2.4 GHz ISM 波段,具有出色的灵敏度和发射功率调节能力,能够满足多种通信距离需求。 ### 开发资源与工具链支持 为了方便开发者快速上手并构建基于 nRF52810 的项目,Nordic 提供了一系列开发资源和支持文档: - **SDK 下载**: 官方提供了 nRF5 SDK,其中包含了丰富的示例代码以及外设驱动程序库。 - **开发环境搭建指南**: 参考《Nordic52810开发手记—环境安装》一文中描述的方法可以完成必要的软件设置过程。 以下是用于初始化项目的简单 C 语言模板代码片段: ```c #include "nrf.h" void clock_initialization(void){ NRF_CLOCK->TASKS_HFCLKSTART = 1; // 启动高频晶体振荡器 } int main(){ clock_initialization(); while(1){ __WFI(); // 进入等待中断模式以节省电能消耗 } } ``` 此代码展示了如何启动内部时钟源以便后续操作正常执行。 ### 使用教程概览 对于初学者而言,《Nordic52810开发手记》系列文章是一个很好的起点,它不仅介绍了基础概念还涵盖了实际动手实践部分。通过这些材料的学习可以帮助理解芯片的工作原理及其周边电路设计要点。
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值