跳过主要内容

RTC时间不准确

DA1469X

1年前

发表Jagath5275分 7个答复
0个投票

你好

我正在使用Wira SDK使用社交遥远的标签示例。

我正在使用DA14695 MCU作为我们的腕带,并且它具有LCD显示时间。

移动应用程序将发送时间HH:MM:SS和DAY:MON:MON:年,但是2天后,时间落后2分钟。

我正在使用深度睡眠来减少当前的消费。

谢谢
贾加斯

1年前

pm_dialog

嗨,Jagath52,

感谢您的问题。您可以在应用程序代码中分享您使用的RTC配置吗?

仅当DA14695处于深度睡眠状态时才会复制这一点?

谢谢,pm_dialog

1年前

Jagath52 75分

你好

这是RTC开始

我已经评论了HW_RTC_SET_SET_TIME_CLNDR(),以避免设备从深度睡眠中醒来时的时间重新定位。

静态int log_inittimestamp(void)
{
int状态;

/ *检查设备是否第一次供电 */
if(timestampmagicvalue!= log_timestamp_init_magic_value){
// status = hw_rtc_set_time_clndr(&time_cfg,&calendar_cfg);

// if(status!= hw_rtc_valid_entry){//!任何无效的条目都会导致故障
// assert_warning(0);
//返回log_status_invalid_timestamp_default_values;
//}
/*
*指定已执行RTC初始化
*(只要设备供电,有效)。
*
* \请替代,魔术值可以存储在所用的闪存中
*因此,电源故障后未重新定位设备。
*/
timestampmagicvalue = log_timestamp_init_magic_value;
}
hw_rtc_clock_enable();//!确保激活时钟门控
hw_rtc_start();//!确保激活时间和日历计时器

_verbose_(verbose_state,%s,__func__)
返回log_status_ok;
}

此功能是从移动应用程序接收时间和日期

静态void cts_set_time_cb(ble_service_t *svc,uint16_t conn_idx,const cts_current_time_time_t *time)
{
int状态;

/ *检查通过的时间是否有效 */
if(!cts_is_current_time_valid(time)){
/ *如果不返回WIT错误,表示忽略了时间集 */
cts_set_time_cfm(svc,conn_idx,cts_error_data_field_ignored);
返回;
}

/ *将CTS时间/日期复制到RTC时间/日期 */
calendar_cfg.year = time-> date_time.year;
calendar_cfg.month = time-> date_time.month;
calendar_cfg.mday = time-> date_time.day;
time_cfg.hour = time-> date_time.hours;
time_cfg.minute = time-> date_time.minutes;
time_cfg.sec = time-> date_time.seconds;
calendar_cfg.wday = time-> day_of_week;

/ *将NE时间/日期设置为RTC */
状态= HW_RTC_SET_SET_TIME_CLNDR(&time_cfg,&calendar_cfg);

如果(状态!= hw_rtc_valid_entry){
/ *如果检测到任何无效条目拒绝时间更新 */
cts_set_time_cfm(svc,conn_idx,cts_error_data_field_ignored);
}

/ *通知CTS服务设置时间 */
cts_set_time_cfm(svc,conn_idx,att_error_ok);
}

沉睡

我正在使用深度睡眠将设备不使用时使设备入睡

如果我使用深度睡眠,对RTC是否有任何效果

谢谢
贾加斯

1年前

pm_dialog

嗨,Jagath52,

您正在使用哪个低功率时钟(LPC)?是内部RCX还是外部XTAL?

>>但是两天后,时间落后实际时间2分钟

因此,DA1469X在深度睡眠中配置了2天,而醒来的时间低于2分钟?

谢谢,pm_dialog

1年前

Jagath52 75分

你好pm_dialog

1.低功率时钟是XTAL 32K

#define DG_Configuse_lp_clk(lp_clk_32768)

2.设备将随机进入深度睡眠
一个。基于GPIO出版社
b。基于活动

3.可能在5分钟,1小时甚至1天后深度入睡。

4.设备将在DeepSleep中停留5分钟,1小时或超过1天

谢谢
贾加斯

1年前

pm_dialog

嗨,Jagath52,

感谢您的澄清。请将设备放入深度睡眠模式,然后在约1小时后醒来。您可以在第一个唤醒中检测到RTC漂移吗?对这个问题表示歉意,但我想了解出了什么问题。

谢谢,pm_dialog

1年前

Jagath52 75分

你好

没有1或2小时的睡眠,没有漂移

谢谢
贾加斯

1年前

pm_dialog

嗨,Jagath52,

抱歉耽搁了。因此,如果您几天多次将其唤醒,您可以复制它吗?

谢谢,pm_dialog