在DA14580上实现实时时钟

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
4个帖子/ 0新
最后一篇
大卫泰勒
离线
最后一次露面:3年3个月前
加入:2016-12-05 21:00
在DA14580上实现实时时钟

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

关键点..
1我希望它每秒唤醒并做一些东西。
2我想在那之后睡觉。

设备:
mt_dialog.
离线
最后一次露面:4个月2周前
职员
加入:2015-06-08 11:34
嗨David Taylor,

嗨David Taylor,

当设备进入睡眠时,外围域也会断电,这意味着定时器和XTAL16也被断电。设备无法通过硬件定时器中断从睡眠中唤醒,只有BLE事件(包括内核定时器)和唤醒定时器(外部唤醒模块)都能够从睡眠模式唤醒处理器。

如果您想唤醒每秒每秒,可以使用内核计时器,但是要注意,使用此方案,您不会准确测量时间,并且醒来将在每个唤醒中稍微漂移。

如果设备(未决的BLE事件,定时器等)没有立即待定操作,只要启用睡眠模式,设备就会睡眠。

谢谢mt_dialog.

大卫泰勒
离线
最后一次露面:3年3个月前
加入:2016-12-05 21:00
感谢您的回答。

感谢您的回答。
我可能能够使用大于1秒的时间,并最大限度地减少错误。

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

此外,你能把我指向内核定时器界面的例子,所以我也可以调查这一点吗?

mt_dialog.
离线
最后一次露面:4个月2周前
职员
加入:2015-06-08 11:34
嗨David Taylor,

嗨David Taylor,

拥有设备数目,通过了解广告时段,将为您使用BLE定时器测量的可靠值,因为在广告唤醒,通过规范,还有一个随机延迟,从+变化。-0到10ms。您可以查看内核定时器,看看它们是否适合您的实现。然而,在支持论坛上有大量的讨论,如何测量时间,最有效的方式是通过LLD_EVT_TIME_GET()函数读取BLE定时器时钟,但仍然是不是那么准确,以便成为RTC。

谢谢mt_dialog.