合宙LuatOS的个人空间 https://www.eechina.com/space-uid-176273.html [收藏] [复制] [RSS]

博客

RTC时间引擎核心功能揭秘:驱动精准计时的技术内核

已有 153 次阅读2026-1-9 17:02 |个人分类:4G模组| 物联网, 嵌入式硬件, 单片机, 硬件工程

在物联网、智能穿戴和工业控制等对时间敏感的应用中,RTC核心库扮演着“时间引擎”的角色,其核心功能涵盖时间计数、日历生成、时间校准和低功耗维持等。该库通过优化中断处理与电源管理策略,使设备在最小能耗下实现全天候精准计时,成为构建可信时间系统的中枢技术。

本文将以通信定位二合一Air780EGH系列核心板为例,分享RTC实时时钟应用示例要点。
 

 

一、RTC功能示例demo

本示例使用Air780EGH核心板演示RTC核心库的核心功能,主要包括:

任务一:无网络环境下的RTC功能

设置基准年和时区信息初始化RTC;

通过时间戳设置具体时间后,每秒循环打印基于RTC的本地时间。

任务二:网络授时后的RTC同步

设置基准年和时区信息初始化RTC;

等待基站和NTP授时成功,随后每秒循环打印实时时间和RTC时钟时间。


1.1 示例代码

rtc_app.lua核心代码如下,完整demo详见源码仓库最新文件。



1.2 示例功能验证

注意:每次测试时,两个任务只能选择其一进行测试。


1)核心步骤

根据实操教程搭建好硬件环境;

关于SIM卡使用请注意:若连入4G网络通过NTP服务器授时,获取实时时间,需要使用SIM卡;若只需要RTC实时时钟,则不需要SIM卡。

demo脚本代码rtc_app.lua中,按照自己的需求启用对应的task函数;

Luatools烧录内核固件和修改后的demo脚本代码;

将客户端核心板烧录客户端模式代码,并连接到路由器;

烧录成功后,代码会自动运行,打印日志。如果正常运行,会打印NTP时间同步成功、本地时间以及RTC时间等信息。


2)查看日志

通过Luatools工具查看相关日志,如下图示。

选择运行任务一:


选择运行任务二:

 

二、相关注意事项

2.1 关于RTC和时区

rtc.set() 只能设置UTC时间(0时区时间);

rtc.get() 获取的也是UTC时间(0时区时间)。

RTC时间为UTC时间(0时区时间),与国内时间(东八区时间)相差8小时为正常现象。


2.2 网络同步时间和RTC的关系

NTP成功之后,不需要再调用rtc.set设置系统时间,也不要用rtc.get获取时间,而是用os.date() 获取本地时间更为方便。


2.3 硬件工作状态和RTC的关系

硬件完全掉电(vbat断电),再上电(vbat上电)

此种情况上电开机默认时间为:

{"year":36804,"min":0,"hour":0,"mon":15,"sec":0,"day":12}

硬件没有掉电(vbat一直有电),软件关机此种情况上电开机默认时间为实时时间。

硬件没有掉电(vbat 一直有电),软件重启

此种情况上电开机默认时间为:{"year":36804,"min":0,"hour":0,"mon":15,"sec":0,"day":12}

内部硬件看门狗重启

此种情况上电开机默认时间为:

{"year":36804,"min":0,"hour":0,"mon":15,"sec":0,"day":12}

 

今天的内容就分享到这里了~


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部