你好对话框,
我正在继续基于BLE_APP_PERITIVELAL示例的应用程序工作。我做了一些目前的测量,并对BLE-Timer有一些问题。
在我的应用程序中,我想用不同的频率来样。例如每40毫秒。一秒钟后,我想将其发送到计算机。
代码有效,我得到了正确的值。
如果有连接interplation,有时是ADC测量的计时器比预期早期中断。在图片上,你可以看到这个问题。实际上,ADC测量应该在连接事件之后,但它是前面的10秒钟。之后,测量之间的时间再次正确。这发生了几次,这就是我在我想要的第二个中获得更多价值的原因。
你知道如何解决这个问题。
另一个问题:定时器间隔的解决是什么?是否有可能获得例如65ms的间隔。目前我只有10毫秒的分辨率。使用BLE-TIMER非常重要,因为在两次测量之间想要睡眠。
问候
大卫
关键词:
设备:

嗨Davidw,
嗯,BLE定时器具有10毫秒的准确性,这是您可以设置的最小间隔,因此否您不能具有65ms的计时器。关于计时器有时会触发定时器的事实,在两种情况下观察到10毫秒或更少,如此:
但是在你附加的屏幕截图上,你似乎指示的不是内核定时器(你标记为m2的第二个活动)这似乎是一个连接事件,而不是由于计时器事件而唤醒。
谢谢mt_dialog.
嗨mt_dialog,
感谢您及时的回复。
是的,你是在m2的连接事件。
因此,如果我在我的情况下正确理解您,则在异步事件期间设置定时器,并且我具有这种不准确的原因。您是否有任何想法或有可能等待我可以在两个刻度之间设置计时器的时间?
只有在ADC测量附近有连接事件时才发生此问题。如果您说连接事件与内核计时器无关,为什么不会在连接事件后直接发生唤醒(ADC测量)?
问候
大卫
嗨Davidw,
实际上,你遇到的是大多是我所提到的第二点,定时器的到期与连接事件相同(它们都是来自BLE核心的事件),我的意思是,如果定时器发生在一起在某个点处的连接间隔堆栈将在设备唤醒时执行两者,但在您的情况下,发生连接间隔并且计时器将在近似10ms中进行,因此调度器将再次执行,以便不浪费电量再次唤醒以执行回调。
谢谢mt_dialog.
嗨mt_dialog,
好的。谢谢你的好答案。
是否有可能从连接inch中获取BLE计时器。然后我知道我的ADC和连接事件定时器是否会同时中断。
我更喜欢在连接事件后进行测量,因此我想将定时器延迟设置为x + 1。
问候,
戴维德
嗨Davidw,
即使您提供的值不是直接倍数的连接间隔的值,我并不知道这种情况,即使是那些最终发生这个事件,也不知道。在不使用计时器的情况下捕获每个连接间隔的BLE_EVT_END之后,一个想法也将在连接间隔之后执行ADC测量。请检查Beacon实现,以捕获User_On_ble_Powered()中的特定事件,但此实现将限制您的连接间隔的采样周期。
谢谢mt_dialog.