CN / EN
CN / EN

提问

设计支持

您的项目私密技术问题如需获得一对一支持,请点击下方联系我们。

板子不断电重启,RTC已经设置的时间会重新重置,请问有啥办法可以不重置这个RTC的时间吗? GR551x

che****.cn

2024-09-03 15:16

1.我的操作:

在使用内部RTC功能时,依次调用接口app_rtc_init(), app_rtc_init_time(),来初始化RTC和设置了正确的日期和时间,然后不断电重启,调用app_rtc_init()和app_rtc_get_time()来获取当前的时间,发现时间会清零为2010年xxx,而不是前面已经设置的时间。查看源码后发现app_rtc_init()会重置时间。但是不掉用app_rtc_init()而直接调用app_rtc_get_time()会报错。

2.我要实现的功能:

如设置了RTC的时间为2024年9月3日,15:07:23,周三,经过了一个小时后,在不断电的情况下程序重启(RTC模块是始终供电的,这个在数据手册中可以查看到说明,理论上计时将会一直进行),能通过调用一个接口函数来获取到时间2024年9月3日,16:07:23,周三。其中中间间隔的这个时间不一定是1小时,有可能为几日甚至几个月。

3.请问sdk中有没有相应的方法实现我想要的功能?如果能实现,则我应该如果操作,可以参考那些文件?如能得到解答,我将非常感谢!

0收藏

0赞成

Ping

汇顶员工
2024-09-03 17:30

1. RTC模块在系统复位(看门狗、Chip en等复位)的时候,也会被复位复位,因此时间会回复成默认值;

2. RTC模块不支持备用电源供电;

因此目前的常规解决方案:在复位之前把时间写入Flash,重启之后加从Flash读取时间,并加上重启过程的固定时间偏移,重新初始化RTC。

0条评论

0赞成

0收藏

您的评论

登录后可回答问题,请 注册

我们时刻倾听您的声音
联系销售

扫描关注公众号

打开微信,使用“扫一扫”即可关注