在sdk5中,Wkupct和app_easy_timer不能一起工作

8个帖子/ 0个新
最后发表
achao1104
离线
最后看到:5年4个月前
主
加入:2015-12-24 10:56
在sdk5中,Wkupct和app_easy_timer不能一起工作

对话框中,

在我的项目中,我让设备处于深度睡眠状态,直到一个唤醒中断被触发或一个固定的时间过去。
下面的工作很好,只要有一个唤醒中断被触发,它就会被唤醒并发布广告,然后进入睡眠。
静态孔隙adv_data_update_timer_cb ()

app_adv_data_update_timer_used = 0 xffff;
app_easy_gap_advertise_stop ();

printf_string(“\ n \ radvertise \ r \ n”);
/ / app_easy_timer_cancel_all ();
/ / app_easy_timer(30000年,ble_timer_cb);
wkupct_disable_irq ();
wkupct_register_callback (wake_up_cb);
Wkupct_enable_irq (0x40, 0x40, 1, 0);
arch_set_deep_sleep ();
arch_ble_ext_wakeup_on ();

但是,如果我像下面那样同时使用app_easy_timer和wkupct,它就不能工作。在唤醒中断被触发后,它将不会被唤醒。

printf_string(“\ n \ radvertise \ r \ n”);
app_easy_timer_cancel_all ();
ble_timer_cb app_easy_timer (30000);
wkupct_disable_irq ();
wkupct_register_callback (wake_up_cb);
Wkupct_enable_irq (0x40, 0x40, 1, 0);
arch_set_deep_sleep ();
arch_ble_ext_wakeup_on ();

设备:
achao1104
离线
最后看到:5年4个月前
主
加入:2015-12-24 10:56
请帮助,对话支持。

请帮助,对话支持。

MT_dialog
离线
最后看到:3个月1周前
工作人员
加入:2015-06-08 34
嗨achao1104,

嗨achao1104,

很有可能你在醒来的时候没有正确地唤醒BLE。请尝试在6秒后醒来一次或按下按钮:

空白wake_up_cb(空白)

如果(GetBits16 (SYS_STAT_REG PER_IS_DOWN))
periph_init ();
arch_ble_force_wakeup ();
arch_ble_ext_wakeup_off ();
default_advertise_operation ();

空白app_on_db_init_complete(空白)

arch_set_deep_sleep ();
test_timer = app_easy_timer (600wake_up_cb);
Wkupct_enable_irq (0x200, 0x200, 1, 0);
wkupct_register_callback (wake_up_cb);
arch_ble_ext_wakeup_on ();

由于MT_dialog

achao1104
离线
最后看到:5年4个月前
主
加入:2015-12-24 10:56
原因是什么

为什么要把“arch_set_deep_sleep();”放在第一个,“arch_ble_ext_wakeup_on();”放在最后一个?

MT_dialog
离线
最后看到:3个月1周前
工作人员
加入:2015-06-08 34
嗨achao1104,

嗨achao1104,

在项目中,我用来测试这个,我没有默认启用deep_sleep,所以我在某处启用了它。应该最后调用arch_ble_ext_wakeup_on(),因为这会使ble处于永久睡眠状态,等待外部中断。请查看UM-B-006.pdf文件,了解更多关于睡眠程序的信息。

由于MT_dialog

PDonchev
离线
最后看到:2年8个月前
加入:2015-06-21十四37
嗨MT_dialog,

嗨MT_dialog,
我只是好奇,如果BLE模块在给定的例子中被永久禁用,系统将如何在6秒后唤醒?

MT_dialog
离线
最后看到:3个月1周前
工作人员
加入:2015-06-08 34
嗨PDonchev,

嗨PDonchev,

BLE是永久禁用的,但是定时器的设置消息已经安排好了,所以当时间到来时BLE将唤醒并服务于事件。你有没有试过这个例子,但没有效果?

由于MT_dialog

PDonchev
离线
最后看到:2年8个月前
加入:2015-06-21十四37
你好,

你好,
谢谢你的解释,非常有帮助。我仍然在做我的第一个BLE项目(目前的优先级较低),我仍然在研究SDK。
一开始我很困惑,但现在我了解了大局。SDK5也有很大的帮助。