2 posts / 0 new
Last post
randyzhou
Offline
Last seen:2 days 18 hours ago
加入:2014-02-20 07:09
睡眠唤醒问题

1.在定义EXT_SLEEP_ENABLED宏之后唤醒是不是采用如下方式就可以了:
app_disable_sleep();
if(GetBits16(SYS_STAT_REG, PER_IS_DOWN))
periph_init();
2 .在定义了EXT_SLEEP_ENABLED这个宏之后,在没有是不是所有的外部接口(spi,i2c等),在没有唤醒之前,都不能使用,如果我想使用外部接口是不是要在唤醒后才能用
3.在没有唤醒之前,定时器任务app_timer_set(APP_TIMER, TASK_APP, 5);会不会执行
4.唤醒后想再次进入睡眠是不是采用app_set_extended_sleep
抱歉问题有点多,麻烦解答

Device:
Gongyu_Dialog
Offline
Last seen:4 days 17 hours ago
加入:2016-04-27 07:07
1.对

1.对
2.是的,extended sleep模式在睡眠情况下会把外设的电都关了,所以要用只有先唤醒
3.会执行,app_timer_set调用的是BLE的时钟,在考虑是否睡眠以及睡多长时间时,都会将之前设定的BLE timer计算在内
4.对,这样就可以设回extended sleep模式,之前在DSPs工程下做过一个按键睡眠的代码,可以参考:
void app_button_press_cb(void)
{
if(GetBits16(SYS_STAT_REG, PER_IS_DOWN)){
periph_init();
}

if(arch_get_sleep_mode() == ARCH_SLEEP_OFF)
{
app_easy_gap_advertise_stop();
arch_set_sleep_mode(ARCH_EXT_SLEEP_ON);
user_sps_set_mode(ARCH_EXT_SLEEP_ON);
user_scheduler_reinit();//
arch_ble_ext_wakeup_on();
}
app_button_enable();
}