实现da14580实时时钟

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
4个职位/ 0个新
最后发表
大卫泰勒
离线
最后看到:3年3个月前
加入:晚上九点2016-12-05
实现da14580实时时钟

我想在sdk5的外围设备示例中添加实时时钟功能。我的计划是使用16MHz定时器分为一个1Hz中断,每秒钟唤醒DA14580和更新一些内存与实际时间小时、分钟、秒和日期等。计时器将休眠大部分时间,只有唤醒广告和上述功能。
是否有一个例子,我可以使用设置定时器中断功能的16Mhz定时器和实现“去睡觉”在中断结束?

重点. .
1我希望它每时每刻都醒着,做些事情。
2我想让它在那之后睡觉。

设备:
MT_dialog
离线
最后看到:4个月,1个星期前
工作人员
加入:2015-06-08 34
嗨大卫•泰勒

嗨大卫•泰勒

当设备进入休眠状态时,外围域也将关闭,这意味着计时器和XTAL16也将关闭。设备不能通过硬件计时器中断从休眠中唤醒,只有BLE事件(包括内核计时器)和唤醒计时器(外部唤醒模块)能够从休眠模式唤醒处理器。

如果你想每秒钟唤醒一次,你可以使用一个内核定时器,但是要知道,使用这个方案你不能精确地测量时间,并且每次唤醒都会有轻微的漂移。

如果设备没有立即挂起的操作(挂起BLE事件,计时器等),只要休眠模式被启用,设备就会进入休眠状态。

由于MT_dialog

大卫泰勒
离线
最后看到:3年3个月前
加入:晚上九点2016-12-05
谢谢你的回答。

谢谢你的回答。
我可以用大于1秒的时间来最小化误差。

是否有可能对每一个标准BLE唤醒(在广告模式中)生成一个计数,并使用那段时间的知识来生成我的计数?

另外,你能不能给我一个内核定时器接口的例子,让我也可以研究一下?

MT_dialog
离线
最后看到:4个月,1个星期前
工作人员
加入:2015-06-08 34
嗨大卫•泰勒

嗨大卫•泰勒

让设备对每个广告事件进行计数,并通过知道广告的周期将给你更不可靠的值,因为在广告唤醒中,根据规范,还会添加一个从+-0到10ms不等的随机延迟。您可以检查内核计时器,看看它们是否适合您的实现。尽管如此,在支持论坛上有很多讨论,如何测量时间,最有效的方法是通过lld_evt_time_get()函数读取BLE计时器时钟,但它仍然不是那么准确,以成为RTC。

由于MT_dialog