亲爱的支持团队!你能不能,解释一下,如何设置下一个睡眠模式的时间间隔。
嗨Lyadnov,
如果我能从你的问题中正确理解,你想要完成的是使用一个软件定时器,以便在设备处于延长睡眠模式时周期性地唤醒?请检查app_easy_timer()。否则,请澄清你的问题。
谢谢,PM_Dialog
你好,你正确理解我的问题,但为了清楚地理解app_easy_timer()工作,我需要检查任何示例,但在SDK中我没有看到示例与app_easy_timer()从ext. sleep模式唤醒。你有吗?
使用SDK6.0.10的ble_app_sleepmode示例(6.0.10.511\projects\target_apps\ble_examples\ble_app_sleepmode)。这个例子演示了如何将DA14585置于永久睡眠状态。在user_app_adv_start()函数中设置一个计时器,当计时器到期时,设备将停止发布消息并进入延长睡眠模式。你可以通过按一个按钮唤醒控制器唤醒它。请查看下面的修改,以便通过app_easy_timer()唤醒它:
1.定义一个新的定时器处理程序:
timer_hnd wakeup_timer_used__attribute__(部分(“retention_mem_area0”),zero_init));/ / @RETENTION记忆
2.从user_app_adv_undirect_complete()中注释掉app_button_enable(),并设置一个计时器:
wakeup_timer_used = app_easy_timer(WAKEUP_TO, app_button_press_cb);
3.将WAKEUP_TO定义为ble_app_sleepmode.h头文件
4.当过期时,将触发wakeup_timer_cb()。该设备将苏醒并再次开始广告
static void wakeup_timer_cb(void) {if (GetBits16(SYS_STAT_REG, PER_IS_DOWN)){外围init();} if (arch_ble_ext_wakeup_get()) {arch_set_sleep_mode(app_default_sleep_mode);arch_ble_force_wakeup ();arch_ble_ext_wakeup_off ();app_easy_wakeup ();} //如果状态不空闲,忽略If (ke_state_get(TASK_APP) == APP_CONNECTABLE) {user_app_adv_start();}}
5.停止计时器up连接。
app_easy_timer_cancel (wakeup_timer_used);
如果您遵循上面的步骤,系统将发布APP_ADV_DATA_UPDATE_TO秒。然后它将进入睡眠模式,并在WAKEUP_TO秒后醒来。如果您认为这些步骤有用,请将此票标记为“已接受”。
嗨Lyadnov,
如果我能从你的问题中正确理解,你想要完成的是使用一个软件定时器,以便在设备处于延长睡眠模式时周期性地唤醒?请检查app_easy_timer()。否则,请澄清你的问题。
谢谢,PM_Dialog
你好,你正确理解我的问题,但为了清楚地理解app_easy_timer()工作,我需要检查任何示例,但在SDK中我没有看到示例与app_easy_timer()从ext. sleep模式唤醒。你有吗?
嗨Lyadnov,
使用SDK6.0.10的ble_app_sleepmode示例(6.0.10.511\projects\target_apps\ble_examples\ble_app_sleepmode)。这个例子演示了如何将DA14585置于永久睡眠状态。在user_app_adv_start()函数中设置一个计时器,当计时器到期时,设备将停止发布消息并进入延长睡眠模式。你可以通过按一个按钮唤醒控制器唤醒它。请查看下面的修改,以便通过app_easy_timer()唤醒它:
1.定义一个新的定时器处理程序:
2.从user_app_adv_undirect_complete()中注释掉app_button_enable(),并设置一个计时器:
3.将WAKEUP_TO定义为ble_app_sleepmode.h头文件
4.当过期时,将触发wakeup_timer_cb()。该设备将苏醒并再次开始广告
5.停止计时器up连接。
如果您遵循上面的步骤,系统将发布APP_ADV_DATA_UPDATE_TO秒。然后它将进入睡眠模式,并在WAKEUP_TO秒后醒来。如果您认为这些步骤有用,请将此票标记为“已接受”。
谢谢,PM_Dialog