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)
|
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;
|
EAXFR = 1;
|
||||||
// 1. 立即关闭所有掉电外部中断允许与唤醒允许,防止重入
|
// 1. 立即关闭所有掉电外部中断允许与唤醒允许,防止重入
|
||||||
P0INTE = 0x00;
|
P0INTE = 0x00;
|
||||||
|
|||||||
Reference in New Issue
Block a user