按钮唤醒异常(转复位)

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
4个职位/ 0个新职位
最后发表
西蒙•王
离线
最后看到:2个星期前
加入:2016-08-16 07:57
按钮唤醒异常(转复位)

亲爱的团队对话框,

我引用ble_app_sleepmode项目来实现ble_app_barebone项目中的按钮唤醒。我还使用app_timer_set()来定期为信标唤醒。
我用来睡觉的模式是扩展睡眠模式。开始睡觉的功能如下。

空白user_app_adv_undirect_complete (uint8_t状态)


app_timer_set (APP_BEACON_TIMER TASK_APP、延迟);
arch_set_extended_sleep ();
arch_ble_ext_wakeup_on ();
app_button_enable ();

现在,我可以通过BLE定时器正确地定期醒来。但是当我按下按钮,系统就会重置。
是否与OTP的使用以及深度睡眠模式有关?因为我在用Flash刻录代码。

最好的问候,
西蒙

P.S. app_button_press_cb()和app_wakeup_cb()稍微做了修改,所以我认为它们不会影响结果。

关键词:
设备:
MT_dialog
离线
最后看到:2个月4个星期前
工作人员
加入:2015-06-08 34
嗨,西蒙•王

嗨,西蒙•王

设备在何种模式下运行(延长或深度睡眠)?当问题发生时,请尝试连接调试器,以便查看设备到底在哪里停止。也让我知道,如果你有看门狗启用。

由于MT_dialog

西蒙•王
离线
最后看到:2个星期前
加入:2016-08-16 07:57
嗨,对话框的团队,

嗨,对话框的团队,

我使用“arch_set_extended_sleep()”来设置睡眠模式,所以它必须是扩展的,对吗?
我的代码是这样写的,
静态孔隙app_wakeup_cb(空白)

user_app_adv_start ();

我没有改变app_button_press_cb(void)中的任何东西。

在上述情况下,我发现系统将重置,这可能是由于看门狗。
但是如果我将“user_app_adv_start();”移动到app_button_press_cb(void)函数,我将得到广告,系统就像我想的那样变得很好。

您能解释一下唤醒过程的顺序以及为什么app_wakeup_cb()没有执行吗?

最好的问候,
西蒙

MT_dialog
离线
最后看到:2个月4个星期前
工作人员
加入:2015-06-08 34
嗨,西蒙•王

嗨,西蒙•王

是的,因为你正在使用arch_set_extended_sleep(),睡眠应该被扩展,关于你的问题,你将必须检查系统做什么,并重置,以便我能够理解可能的原因可能是什么。你提到重置可能是由于看门狗,你能确保,在调试模式下运行代码与开发标志(DEVELOPMENT_DEBUG设置),并检查系统是否卡在NMI_Handler,此外,如果您可以附加功率分析器,并检查当问题发生时系统会做什么,这也将有助于调试。另外,请确保在计时器发出的广告启动和按钮按下之间没有冲突(据我所知,计时器和外部中断都触发了广告,所以请检查在那一点上是否没有奇怪的事情发生)。

由于MT_dialog