⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
6个帖子/ 0新
最后一篇
戴维德
离线
最后一次露面:2年10个月前
加入:2017-11-17 08:35.
BLE-TIMER.

你好对话框,

我正在继续基于BLE_APP_PERITIVELAL示例的应用程序工作。我做了一些目前的测量,并对BLE-Timer有一些问题。
在我的应用程序中,我想用不同的频率来样。例如每40毫秒。一秒钟后,我想将其发送到计算机。
代码有效,我得到了正确的值。
如果有连接interplation,有时是ADC测量的计时器比预期早期中断。在图片上,你可以看到这个问题。实际上,ADC测量应该在连接事件之后,但它是前面的10秒钟。之后,测量之间的时间再次正确。这发生了几次,这就是我在我想要的第二个中获得更多价值的原因。
你知道如何解决这个问题。

另一个问题:定时器间隔的分辨率是多少?是否有可能得到一个例如65ms的间隔。目前我的分辨率只有10毫秒。这对我来说很重要,因为在两次测量之间,我想睡觉。

问候
大卫

关键词:
依恋:
设备:
mt_dialog.
离线
最后一次露面:6个月3周前
职员
加入:2015-06-08 11:34
嗨Davidw,

嗨Davidw,

嗯,BLE定时器具有10毫秒的准确性,这是您可以设置的最小间隔,因此否您不能具有65ms的计时器。关于计时器有时会触发定时器的事实,在两种情况下观察到10毫秒或更少,如此:

  1. 在异步事件期间设置了BLE定时器,例如在时间t,到期将在t-10ms到t时发生。原因是因为内核定时器基于BLE_GROSSTGTIM定时器,其具有10 ms的前导。这意味着内核定时器可以根据BLE_GROSSTGTIM计算滴答声,并且在2个刻度的时段之间发起的定时器将不准确。
  2. 当另一个定时器在该刻度上到期时,定时器可能会过期一次刻度,由于堆栈设计,该刻度值会到期。

但是在你附加的屏幕截图上,你似乎指示的不是内核定时器(你标记为m2的第二个活动)这似乎是一个连接事件,而不是由于计时器事件而唤醒。

谢谢mt_dialog.

戴维德
离线
最后一次露面:2年10个月前
加入:2017-11-17 08:35.
嗨mt_dialog,

嗨mt_dialog,

感谢您及时的回复。
是的,你是在m2的连接事件。
因此,如果我在我的情况下正确理解您,则在异步事件期间设置定时器,并且我具有这种不准确的原因。您是否有任何想法或有可能等待我可以在两个刻度之间设置计时器的时间?

只有在adc测量附近有连接事件时才会发生此问题。如果你说连接事件与内核定时器无关,为什么唤醒(adc测量)不直接发生在连接事件之后?

问候

大卫

mt_dialog.
离线
最后一次露面:6个月3周前
职员
加入:2015-06-08 11:34
嗨Davidw,

嗨Davidw,

实际上,你遇到的是大多是我所提到的第二点,定时器的到期与连接事件相同(它们都是来自BLE核心的事件),我的意思是,如果定时器发生在一起在某个点处的连接间隔堆栈将在设备唤醒时执行两者,但在您的情况下,发生连接间隔并且计时器将在近似10ms中进行,因此调度器将再次执行,以便不浪费电量再次唤醒以执行回调。

谢谢mt_dialog.

戴维德
离线
最后一次露面:2年10个月前
加入:2017-11-17 08:35.
嗨mt_dialog,

嗨mt_dialog,

好吧。谢谢你的回答。
是否有可能从连接inch中获取BLE计时器。然后我知道我的ADC和连接事件定时器是否会同时中断。
我更喜欢在连接事件后进行测量,因此我想将定时器延迟设置为x + 1。

问候,

戴维德

mt_dialog.
离线
最后一次露面:6个月3周前
职员
加入:2015-06-08 11:34
嗨Davidw,

嗨Davidw,

即使您提供的值不是直接倍数的连接间隔的值,我并不知道这种情况,即使是那些最终发生这个事件,也不知道。在不使用计时器的情况下捕获每个连接间隔的BLE_EVT_END之后,一个想法也将在连接间隔之后执行ADC测量。请检查Beacon实现,以捕获User_On_ble_Powered()中的特定事件,但此实现将限制您的连接间隔的采样周期。

谢谢mt_dialog.