fix: 仅在 Wakeup_Restore 开头加入按键计数清零与 PWR_HOLD 强拉高,彻底解决电池供电下唤醒瞬间电压拉低误判关机的问题
This commit is contained in:
16
App/system.c
16
App/system.c
@@ -382,6 +382,22 @@ void Enter_Low_Power_Sleep(void)
|
||||
*/
|
||||
void Wakeup_Restore(void)
|
||||
{
|
||||
// 双保险 1:强行复位所有按键状态机的计数器,防止唤醒瞬间的瞬态误读累积导致长按关机
|
||||
extern volatile u16 key_up_hold;
|
||||
extern volatile u16 key_down_hold;
|
||||
extern volatile u16 key_confirm_hold;
|
||||
extern volatile u16 key_sos_hold;
|
||||
extern volatile u16 comb_hold;
|
||||
|
||||
key_up_hold = 0;
|
||||
key_down_hold = 0;
|
||||
key_confirm_hold = 0;
|
||||
key_sos_hold = 0;
|
||||
comb_hold = 0;
|
||||
|
||||
// 双保险 2:强保电源锁存引脚输出为高,严防瞬态抖动
|
||||
PWR_HOLD = 1;
|
||||
|
||||
EAXFR = 1;
|
||||
// 1. 立即关闭所有掉电外部中断允许与唤醒允许,防止重入
|
||||
P0INTE = 0x00;
|
||||
|
||||
Reference in New Issue
Block a user