关于唤醒计时器中断回调功能的问题

8帖子 / 0新
最后一篇文章
Sklin
离线
最后一次露面:5年7个月前
专家
加入:2014-08-12 08:01
关于唤醒计时器中断回调功能的问题

嗨对话框
在演示项目接近 - > reporter_fh.i中找到了唤醒计时器中断回调功能,我有一些问题需要咨询。
void app_button_press_cb(void)
{
...
if(getBits16(sys_stat_reg,per_is_down))
periph_init();//为什么在这里进行外围初始化?如果我删除功能会发生什么?

if(app_ble_ext_wakeup_get())
{
#if(ext_sleep_enabled)
app_set_extended_sleep();
#elif(deep_sleep_enabled)
app_set_deep_sleep();
#别的
app_disable_sleep();
#万一
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
离线
最后一次露面:4天16小时前
职员
加入:2013-12-16 15:49
嗨,SK,

嗨,SK,
在睡眠模式下,外围块被关闭。在唤醒时,需要再次进行外围设备(例如,需要还原SPI或UART功能)。

在设备连接时睡眠模式下,在呼叫的例程中再次启用唤醒按钮也可以使异步唤醒。

br

对话框蓝牙智能团队

Sklin
离线
最后一次露面:5年7个月前
专家
加入:2014-08-12 08:01
嗨,ak_dialog

嗨,ak_dialog
我明白了,这对我来说很厉害。
非常感谢。

夏季20100514
离线
最后一次露面:4年1个月前
大师
加入:2014-12-30 05:01
@ak_dialog,嗨,我有一个

@ak_dialog,嗨,就我而言,我有一个问题,每当BLE醒来时,Periph_init()被称为周期性。那么,什么时候应该在app_button_press_cb中调用periph_init()?是因为事实是,当设备连接时,广告被停止,因此periph_init()不称为周期性?

mt_dialog
离线
最后一次露面:1周3天前
职员
加入:2015-06-08 11:34
HI Summer20100514,

HI Summer20100514,

periph_init()被调用,以便每次DA必须做某事时,无论是连接间隔还是广告间隔(当没有外部中断时,periph_init都会从ble_wakeup_handler调用periph_init)。如果发生外部唤醒事件,则应首先调用回调函数,这就是为什么您必须在press_button函数中调用periph_init()。

谢谢mt_dialog

夏季20100514
离线
最后一次露面:4年1个月前
大师
加入:2014-12-30 05:01
好的我明白了。所以有

好的我明白了。因此,当系统被BLE计时器唤醒时,需要调用periph_init()做某事吗?

mt_dialog
离线
最后一次露面:1周3天前
职员
加入:2015-06-08 11:34
HI Summer20100514,

HI Summer20100514,

当BLE计时器唤醒系统时,称为wakeup_handler,在唤醒isr中,periph_init()函数也称为。您不必自己打电话给它是由ISR调用的。

谢谢mt_dialog

夏季20100514
离线
最后一次露面:4年1个月前
大师
加入:2014-12-30 05:01
谢谢你。

谢谢你。