修复切模式闪完多一闪,以及配对失败灯因休眠又慢又少。

切模式/配对快闪用优先级拦住待机绿,闪完同一拍衔上常亮;短灯效播完前禁睡,避免节拍被拉长。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-10 14:16:42 +08:00
co-authored by Cursor
parent c141c7e0aa
commit c7adda3711
4 changed files with 46 additions and 26 deletions
+5 -3
View File
@@ -159,8 +159,9 @@ static void usr_poweroff_finalize_hook(void)
* @brief 按当前业务状态判断能不能休眠
* @note 换向死区(bsp_motor_is_busy 已把它算进"忙")、点动、玩法、按键按住、
* 关机等待、配网窗口,统一都是"不能睡",节拍周期都一样用 USR_TIMER_IDLE_MS。
* 配网只跟 120s 配对窗口(app_pair_is_active):窗口内禁睡,保证广播
* 节拍不被低功耗拉长;成功或超时后恢复可休眠。
* 配网只跟 120s 配对窗口(app_pair_is_active):窗口内禁睡
* 超时后配对失败灯还要再闪约 3s,这段也禁睡,否则节拍被拉长,
* 红绿交替会又慢又少。
* @return 本次应使用的档位
*/
static UsrTickMode_t usr_timer_pick_mode(void)
@@ -168,7 +169,8 @@ static UsrTickMode_t usr_timer_pick_mode(void)
if (bsp_key_is_pressed() || app_power_poweroff_pending()
|| app_mode_get_active() || bsp_motor_is_busy()
|| app_function_is_hand_busy()
|| app_pair_is_active()) {
|| app_pair_is_active()
|| app_led_need_nosleep()) {
return USR_TICK_BLOCK_SLEEP;
}
return USR_TICK_IDLE;