wangchengjun 05ca29c2e0 update:780EXX 780EPM 8101 rtc demo更新 4 ماه پیش
..
main.lua 05ca29c2e0 update:780EXX 780EPM 8101 rtc demo更新 4 ماه پیش
readme.md 05ca29c2e0 update:780EXX 780EPM 8101 rtc demo更新 4 ماه پیش
rtc_app.lua 05ca29c2e0 update:780EXX 780EPM 8101 rtc demo更新 4 ماه پیش

readme.md

功能模块介绍:

1、main.lua:主程序入口;

2、rtc_app.lua:无网络时初始化并每秒打印东八区本地时间与 UTC 时间;有网络时等待 NTP 授时后,同样每秒打印更新后的东八区本地时间与 UTC 时间;

演示功能概述:

1、第一种场景演示:无网络情况下,rtc时钟初始化并每秒打印东八区本地时间与 UTC 时间。

2、第二种场景演示:连接上4G网络,等待 NTP 授时后每秒打印更新后的东八区本地时间与 UTC 时间。

1、Air780EHM/EHV/EGH 核心板一块+可上网的sim卡一张:

  • sim卡(若连入4G网络通过ntp服务器授时,获取实时时间;若只需要RTC实时时钟则不需要sim卡)

2、TYPE-C USB数据线一根 ,Air780EHM/EHV/EGH核心板和数据线的硬件接线方式为:

  • Air780EHM/EHV/EGH核心板通过TYPE-C USB口供电;(供电拨动开关拨到ON侧)

  • TYPE-C USB数据线直接插到开发板的TYPE-C USB座子,另外一端连接电脑USB口;

演示软件环境

1、 Luatools下载调试工具

2、 Air780EHM V2016版本固件

Air780EHV V2016版本固件

Air780EGH V2016版本固件(理论上,2025年7月26日之后发布的固件都可以)

演示核心步骤

1、搭建好硬件环境

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

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

5、烧录成功后,代码会自动运行,查看打印日志,如果正常运行,会打印ntp时间同步成功、本地时间以及RTC时间等信息,如下log显示:

选择运行rtc_task2()函数,打印日志如下:

[2025-11-04 17:33:40.476][000000000.666] I/user.main rtc_demo 001.000.000
[2025-11-04 17:33:40.479][000000000.674] I/user.rtc.timezone() 32
[2025-11-04 17:33:40.488][000000000.675] I/user.rtc设置后时间 Tue Oct 28 19:10:53 2025
[2025-11-04 17:33:45.924][000000008.846] D/mobile cid1, state0
[2025-11-04 17:33:45.938][000000008.847] D/mobile bearer act 0, result 0
[2025-11-04 17:33:45.956][000000008.847] D/mobile NETIF_LINK_ON -> IP_READY
[2025-11-04 17:33:45.965][000000008.848] D/sntp query ntp.aliyun.com
[2025-11-04 17:33:45.971][000000008.848] dns_run 676:ntp.aliyun.com state 0 id 1 ipv6 0 use dns server2, try 0
[2025-11-04 17:33:45.985][000000008.895] D/mobile TIME_SYNC 0      (ntp授时成功)
[2025-11-04 17:33:46.003][000000008.896] I/user.os.date() Tue Nov  4 17:33:45 2025
[2025-11-04 17:33:46.025][000000008.897] I/user.循环rtc时间 {"year":2025,"min":33,"hour":9,"mon":11,"sec":45,"day":4}
[2025-11-04 17:33:46.035][000000008.900] dns_run 693:dns all done ,now stop
[2025-11-04 17:33:46.046][000000008.955] D/sntp Unix timestamp: 1762248825
[2025-11-04 17:33:46.810][000000009.898] I/user.os.date() Tue Nov  4 17:33:45 2025
[2025-11-04 17:33:46.820][000000009.899] I/user.循环rtc时间 {"year":2025,"min":33,"hour":9,"mon":11,"sec":45,"day":4}
[2025-11-04 17:33:47.807][000000010.900] I/user.os.date() Tue Nov  4 17:33:46 2025
[2025-11-04 17:33:47.808][000000010.901] I/user.循环rtc时间 {"year":2025,"min":33,"hour":9,"mon":11,"sec":46,"day":4}
[2025-11-04 17:33:48.806][000000011.902] I/user.os.date() Tue Nov  4 17:33:47 2025
[2025-11-04 17:33:48.813][000000011.903] I/user.循环rtc时间 {"year":2025,"min":33,"hour":9,"mon":11,"sec":47,"day":4}


选择运行rtc_task1()函数,打印日志如下:

[2025-11-11 13:47:52.540][000000000.643] I/user.main rtc_demo 001.000.000
[2025-11-11 13:47:52.557][000000000.651] I/user.rtc.timezone() 32
[2025-11-11 13:47:52.575][000000000.652] I/user.rtc初始时间 {"year":2025,"min":10,"hour":8,"mon":10,"sec":53,"day":28}
[2025-11-11 13:47:52.615][000000000.652] I/user.rtc设置后的本地时间 Tue Oct 28 16:10:53 2025
[2025-11-11 13:47:52.644][000000000.653] I/user.os.date() Tue Oct 28 16:10:53 2025
[2025-11-11 13:47:52.667][000000000.653] I/user.循环rtc时间 {"year":2025,"min":10,"hour":8,"mon":10,"sec":53,"day":28}
[2025-11-11 13:47:53.318][000000001.654] I/user.os.date() Tue Oct 28 16:10:53 2025
[2025-11-11 13:47:53.335][000000001.655] I/user.循环rtc时间 {"year":2025,"min":10,"hour":8,"mon":10,"sec":53,"day":28}
[2025-11-11 13:47:53.577][000000002.655] I/user.os.date() Tue Oct 28 16:10:54 2025
[2025-11-11 13:47:53.586][000000002.656] I/user.循环rtc时间 {"year":2025,"min":10,"hour":8,"mon":10,"sec":54,"day":28}
[2025-11-11 13:47:54.577][000000003.656] I/user.os.date() Tue Oct 28 16:10:55 2025
[2025-11-11 13:47:54.618][000000003.657] I/user.循环rtc时间 {"year":2025,"min":10,"hour":8,"mon":10,"sec":55,"day":28}
[2025-11-11 13:47:55.581][000000004.657] I/user.os.date() Tue Oct 28 16:10:57 2025
[2025-11-11 13:47:55.597][000000004.658] I/user.循环rtc时间 {"year":2025,"min":10,"hour":8,"mon":10,"sec":57,"day":28}