禁用中断时的最大时间

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

在BLE堆栈中禁用中断的最长时间是多少?

我正在使用DA14681开发套件(PRO)并使用PXP_Reporter示例。我修改了一个例子来添加一个hw_timer0和计时器ISR,我只需切换I / O线并查看O-Scope上的时段。定时器配置为每500微秒中断,但我在O范围上看到> 200微秒的抖动。但是,当我禁用PXP_Reporter任务时(注释出此任务的创建)时,此抖动会降低(〜20微秒)。

这是我的定时器配置的代码。如果定时器配置正确,请告诉我。

hw_timer0_init(null);
hw_timer0_set_clock_source(hw_timer0_clk_src_fast);
hw_timer0_set_fast_clock_div(hw_timer0_fast_clk_div_2);
hw_timer0_set_pwm_mode(hw_timer0_mode_clock);
hw_timer0_set_t0_reload(2000,2000);
hw_timer0_set_on_reload(200);
hw_timer0_register_int(timer0_interrupt_cb);
hw_timer0_enable();

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

嗨Kvenkatraman,

问题是在BLE跌落到睡眠之前,它会禁用大约600us的中断,并且应该导致您所看到的抖动,即使您拥有设备始终处于BLE核心和其余系统以来,也会发生这种情况断电时分开。您可以尝试的是使用AD_BLE_STAY_ACTIVE(TRUE)这将强制BLE保持活动状态,并将减少通过睡眠和唤醒BLE引入的任何中断延迟。

谢谢mt_dialog.

Kvenkatraman.
离线
最后一次露面:3年11个月前
加入:2017-05-03 22:26
添加“ad_ble_stay_active.

添加“ad_ble_stay_active(true)”消除了抖动。

这是唯一的解决方法吗?如果是这样,那么功耗如何?

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

嗨Kvenkatraman,

是的,这是唯一有效的解决方法,就我所知,你必须让BLE核心始终醒来,以便在近距离记者的一些初步测量中,没有唤醒和睡觉的中断延迟。如果BLE保持活力并且没有在每个BLE活动中醒来,它额外约为0.4mA。

谢谢mt_dialog.