唤醒定时器中断回调功能问题

8个职位/ 0个新职位
最后发表
sklin
离线
最后看到:6年1个月前
专家
加入:2014-08-12 08:01
唤醒定时器中断回调功能问题

嗨对话框
在演示项目中,接近->reporter_fh。我发现了唤醒定时器中断回调函数,我有一些问题咨询。
空白app_button_press_cb(空白)

...
如果(GetBits16 (SYS_STAT_REG PER_IS_DOWN))
periph_init ();//为什么它在这里做外围初始化?如果我移除这个函数会发生什么?

如果(app_ble_ext_wakeup_get ())

#如果(EXT_SLEEP_ENABLED)
app_set_extended_sleep ();
# elif (DEEP_SLEEP_ENABLED)
app_set_deep_sleep ();
其他#
app_disable_sleep ();
# endif
SetBits32 (GP_CONTROL_REG BLE_WAKEUP_REQ 1);
app_ble_ext_wakeup_off ();
ke_msg_send_basic (APP_WAKEUP_MSG TASK_APP, NULL);

app_button_enable ();//为什么我需要再次启用按钮,即使我已经在其他地方做了。

AK_Dialog
离线
最后看到:6个月1个星期前
工作人员
加入:2013-12-16 15:49
嗨SK,

嗨SK,
在睡眠模式下,外设块断电。在唤醒时,需要再次初始化外围设备(例如,需要恢复SPI或UART函数)。

在回叫程序中再次启用唤醒按钮也可以在设备连接时在睡眠模式中启用异步唤醒。

BR

对话蓝牙智能团队

sklin
离线
最后看到:6年1个月前
专家
加入:2014-08-12 08:01
嗨AK_Dialog

嗨AK_Dialog
我明白了,这对我很有帮助。
非常感谢。

summer20100514
离线
最后看到:4年8个月前
大师
加入:2014-12-30 05:01
@AK_Dialog,你好,我有一个

@AK_Dialog,你好,我有一个问题,就我而言,peripe_init()每次BLE唤醒时都会被周期性地调用。那么,什么时候应该在app_button_press_cb中调用peripher_init()呢?是否因为当设备连接时,通告会停止,因此不定期地调用peripher_init () ?

MT_dialog
离线
最后看到:5个月,3个星期前
工作人员
加入:2015-06-08 34
嗨summer20100514,

嗨summer20100514,

每当da需要做一些事情时,都会调用peripheral_init()来初始化外围设备,无论是连接间隔还是发布间隔(当没有外部中断时,从BLE_WAKEUP_Handler调用peripheral_init)。对于外部唤醒事件,应该首先调用回调函数,这就是为什么必须在press_button函数中调用外围init()。

由于MT_dialog

summer20100514
离线
最后看到:4年8个月前
大师
加入:2014-12-30 05:01
好的,我明白了。所以有

好的,我明白了。所以当系统被BLE定时器唤醒时,需要调用peripher_init()来做一些事情吗?

MT_dialog
离线
最后看到:5个月,3个星期前
工作人员
加入:2015-06-08 34
嗨summer20100514,

嗨summer20100514,

当系统被BLE定时器唤醒时,会调用WAKEUP_handler,在唤醒ISR中也会调用外围init()函数。你不需要自己调用它,它被ISR调用。

由于MT_dialog

summer20100514
离线
最后看到:4年8个月前
大师
加入:2014-12-30 05:01
谢谢你!

谢谢你!