我想在sdk5的外围示例中添加实时时钟功能。我的计划是使用16MHz定时器分为1Hz中断,唤醒DA14580每秒钟和更新一些内存与实际时间hrs分钟秒和日期等。定时器将睡眠大部分时间和只有唤醒广告和上述功能。有一个例子,我可以用来设置定时器中断功能的16Mhz定时器和实现“去睡觉”在中断结束?
重点. .我想让它每时每刻都醒着,做点什么。2 .我想让它在那之后睡觉。
嗨大卫•泰勒
当设备进入睡眠状态时,外围域也会关闭,这意味着计时器和XTAL16也会关闭。设备无法通过硬件计时器中断从睡眠中唤醒,只有BLE事件(包括内核计时器)和唤醒计时器(外部唤醒模块)能够从睡眠模式唤醒处理器。
如果你想每秒钟醒来一次,你可以使用一个内核计时器,但要知道,在这种模式下,你无法准确地测量时间,而且每次醒来都会有轻微的漂移。
如果设备没有立即挂起的操作(挂起的BLE事件,定时器等),设备将进入睡眠,只要睡眠模式是启用的。
由于MT_dialog
谢谢你的回答。我也许可以用大于1秒的时间来最小化误差。
是否有可能生成每一个标准BLE唤醒计数(在广告模式中),并使用该时期的知识来生成我的计数?
另外,您能不能给我一个内核计时器接口的例子,以便我也能研究一下?
让设备对每个广告事件进行计数,并知道广告的周期,这将让你得到比ble计时器更不可靠的值,因为在广告唤醒中,根据规格,还添加了一个从+-0到10ms不等的随机延迟。您可以检查内核计时器,看看它们是否适合您的实现。尽管如此,在支持论坛上有很多讨论,如何测量时间,最有效的方法是通过lld_evt_time_get()函数读取BLE计时器时钟,但对于RTC来说仍然不是那么准确。
嗨大卫•泰勒
当设备进入睡眠状态时,外围域也会关闭,这意味着计时器和XTAL16也会关闭。设备无法通过硬件计时器中断从睡眠中唤醒,只有BLE事件(包括内核计时器)和唤醒计时器(外部唤醒模块)能够从睡眠模式唤醒处理器。
如果你想每秒钟醒来一次,你可以使用一个内核计时器,但要知道,在这种模式下,你无法准确地测量时间,而且每次醒来都会有轻微的漂移。
如果设备没有立即挂起的操作(挂起的BLE事件,定时器等),设备将进入睡眠,只要睡眠模式是启用的。
由于MT_dialog
谢谢你的回答。
我也许可以用大于1秒的时间来最小化误差。
是否有可能生成每一个标准BLE唤醒计数(在广告模式中),并使用该时期的知识来生成我的计数?
另外,您能不能给我一个内核计时器接口的例子,以便我也能研究一下?
嗨大卫•泰勒
让设备对每个广告事件进行计数,并知道广告的周期,这将让你得到比ble计时器更不可靠的值,因为在广告唤醒中,根据规格,还添加了一个从+-0到10ms不等的随机延迟。您可以检查内核计时器,看看它们是否适合您的实现。尽管如此,在支持论坛上有很多讨论,如何测量时间,最有效的方法是通过lld_evt_time_get()函数读取BLE计时器时钟,但对于RTC来说仍然不是那么准确。
由于MT_dialog