嗨。我们正在试图修改proximity_fh项目,以便在按下一个键时开始广告。当按钮被释放时,我们想要停止广告。
在原始示例代码中,广告立即开始。我们关闭了"app_adv_start()"的自动启动,现在我们在键被按下时在键中断处理程序中运行"app_adv_start()",在键被释放时运行"app_adv_stop()"。这似乎不起作用。
然而,似乎每10秒或12秒就有一个事件或某种中断发生。使用SmartSnippets工具,我们看到当前水平在短时间内上升到~0.8mA,我们不知道那是什么,但它似乎唤醒设备从睡眠模式和重新初始化大多数东西,如led,如果我们恰好在之前按下按钮,广告就会开始(即广告在我们按下按钮后很晚才开始)。
同样的事情也会发生,如果我们从proximity_fh样本开始,只改变广告间隔超过12秒,那么广告似乎不再发生,取而代之的是0.8mA的电流增加每10或12秒发生。
首先,当设备处于长时间睡眠状态,而不是广告时,这种中断发生了什么?
第二,当我们按下按钮时,如何让广告生效?
我们已经检查了键盘的例子,但我们认为它不是我们想要的。

所以,为了澄清这个问题,以防它不清楚:
如果我们在项目的某个地方调用app_adv_stop()函数,那么广告将停止,芯片进入睡眠模式。问题是,从这一点上,将有一个计时器事件开始每10-12秒。请让我知道这是什么,为什么会发生。
谢谢
也许是因为您处于app_ble_ext_wakeup_off模式?
嗯- b - 006, p12:
将BLE核心的操作恢复到默认模式。在此模式下,BLE核心
将每10秒唤醒,即使没有BLE事件被安排。如果一个事件已经发生
计划越早,那么BLE核心就会越早醒来为它服务。
我不知道这是不是你要找的东西,但我们也注意到了同样的事情。
嗨,Kim, Joacimwe,
你是正确的。设置“app_ble_ext_wakeup_off”后,短时间内每10秒一次唤醒。
如果设置了“app_ble_ext_wakeup_on”,则每10秒唤醒一次就结束了。但是在调用app_ble_ext_wakeup_on之后,您将无法使用app_timer_set命令设置计时器事件,并在扩展/深度睡眠模式下通过计时器事件唤醒DA14580。