代码暂存 按键中断优化及阀门时间优化

This commit is contained in:
常正强 2025-05-14 09:57:50 +08:00
parent 37c112e9ff
commit 1bf077c4ea
5 changed files with 18 additions and 21 deletions

View File

@ -105,7 +105,7 @@ int main(void)
BSP_MOTOR_Init(); BSP_MOTOR_Init();
VALVE_OPEN(); VALVE_OPEN();
DelayMs(2000); DelayMs(1000);
BSP_VAVLE_Init(); BSP_VAVLE_Init();
BSP_LED_Init(); BSP_LED_Init();

View File

@ -37,7 +37,7 @@ extern tmosTaskID vavle_task_id;
#define CHARGE_TIME_MS (1500) #define CHARGE_TIME_MS (1000)
// 2.2V // 2.2V
#define LOW_VABAT_ALARM_VALUE 22 #define LOW_VABAT_ALARM_VALUE 22

View File

@ -765,10 +765,10 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events)
motor_flag = 0; motor_flag = 0;
LED_VALVE_OPEN; LED_VALVE_OPEN;
VALVE_OPEN(); VALVE_OPEN();
DelayMs(1000); // DelayMs(1000);
IotFlag_t.Valve_Open_flag = 1; IotFlag_t.Valve_Open_flag = 1;
fault_state = 0; fault_state = 0;
logDebug("motor/LED open"); logDebug("motor/LED open!!!");
tmos_start_task(check_task_id, MOTOR_STOP_EVT, MS1_TO_SYSTEM_TIME(1000)); tmos_start_task(check_task_id, MOTOR_STOP_EVT, MS1_TO_SYSTEM_TIME(1000));
} }
else if(motor_flag == 2) else if(motor_flag == 2)
@ -776,9 +776,9 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events)
motor_flag = 0; motor_flag = 0;
LED_VALVE_CLOSE; LED_VALVE_CLOSE;
VALVE_CLOSE(); VALVE_CLOSE();
DelayMs(1000); // DelayMs(1000);
fault_state = 4; fault_state = 4;
logDebug("motor/LED close"); logDebug("motor/LED close!!!");
tmos_start_task(check_task_id, MOTOR_STOP_EVT, MS1_TO_SYSTEM_TIME(1000)); tmos_start_task(check_task_id, MOTOR_STOP_EVT, MS1_TO_SYSTEM_TIME(1000));
} }
tmos_start_task(check_task_id, CHECK_EVT_START, MS1_TO_SYSTEM_TIME(200)); //100 tmos_start_task(check_task_id, CHECK_EVT_START, MS1_TO_SYSTEM_TIME(200)); //100
@ -821,12 +821,9 @@ void GPIOA_IRQHandler(void)
// ¹Ø°´¼üÖÐ¶Ï // ¹Ø°´¼üÖжÏ
BSP_KEY_ExitLowpower(); BSP_KEY_ExitLowpower();
printf("KEY IRQ"); printf("KEY IRQHandler !!!");
key_wakeup_flag = 1; key_wakeup_flag = 1;
} }
} else {
// 可能是电源波动导致的中断,忽略此次中断
// printf("Power Fluctuation - Ignored");
} }

View File

@ -174,7 +174,7 @@ void BSP_KEY_EnterLowpower(void)
PWR_PeriphWakeUpCfg(ENABLE, RB_GPIO_WAKE_MODE | RB_SLP_GPIO_WAKE, Long_Delay); PWR_PeriphWakeUpCfg(ENABLE, RB_GPIO_WAKE_MODE | RB_SLP_GPIO_WAKE, Long_Delay);
// 开启GPIOB中断 // 开启GPIOB中断
PFIC_EnableIRQ(GPIO_B_IRQn); PFIC_EnableIRQ(GPIO_A_IRQn);
} }
void BSP_KEY_ExitLowpower(void) void BSP_KEY_ExitLowpower(void)
@ -182,7 +182,7 @@ void BSP_KEY_ExitLowpower(void)
BSP_BlockSleep(); BSP_BlockSleep();
// 关闭GPIOB中断 // 关闭GPIOB中断
PFIC_DisableIRQ(GPIO_B_IRQn); PFIC_DisableIRQ(GPIO_A_IRQn);
PWR_PeriphWakeUpCfg(DISABLE, RB_GPIO_WAKE_MODE | RB_SLP_GPIO_WAKE, Long_Delay); PWR_PeriphWakeUpCfg(DISABLE, RB_GPIO_WAKE_MODE | RB_SLP_GPIO_WAKE, Long_Delay);
} }
@ -304,7 +304,7 @@ void BSP_KEY_Init(app_task_evt_handler_t handler)
PWR_PeriphWakeUpCfg(ENABLE, RB_GPIO_WAKE_MODE | RB_SLP_GPIO_WAKE, Long_Delay); PWR_PeriphWakeUpCfg(ENABLE, RB_GPIO_WAKE_MODE | RB_SLP_GPIO_WAKE, Long_Delay);
// 开启GPIOB中断 // 开启GPIOB中断
PFIC_EnableIRQ(GPIO_B_IRQn); PFIC_EnableIRQ(GPIO_A_IRQn);
tmos_start_task(key_task_id, KEY_SCAN_EVT, MS1_TO_SYSTEM_TIME(KEY_SACN_MS)); tmos_start_task(key_task_id, KEY_SCAN_EVT, MS1_TO_SYSTEM_TIME(KEY_SACN_MS));

View File

@ -255,14 +255,14 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀
logDebug("VAVLE_CLOSE_START_EVT"); logDebug("VAVLE_CLOSE_START_EVT");
BSP_BlockSleep(); BSP_BlockSleep();
LED_VALVE_OPEN; LED_VALVE_CLOSE;
DelayUs(200); // DelayUs(200);
VALVE_STOP(); VALVE_STOP();
logDebug("MOTOR_INIT"); logDebug("MOTOR_INIT");
tmos_start_task(vavle_task_id, VAVLE_CLOSE_ACTION_EVT, MS1_TO_SYSTEM_TIME(CHARGE_TIME_MS)); tmos_start_task(vavle_task_id, VAVLE_CLOSE_ACTION_EVT, MS1_TO_SYSTEM_TIME(200));
return (events ^ VAVLE_CLOSE_START_EVT); return (events ^ VAVLE_CLOSE_START_EVT);
} }
@ -275,7 +275,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀
logDebug("VALVE_CLOSE"); logDebug("VALVE_CLOSE");
tmos_start_task(vavle_task_id, VAVLE_CLOSE_END_EVT, MS1_TO_SYSTEM_TIME(1600)); tmos_start_task(vavle_task_id, VAVLE_CLOSE_END_EVT, MS1_TO_SYSTEM_TIME(CHARGE_TIME_MS));
return (events ^ VAVLE_CLOSE_ACTION_EVT); return (events ^ VAVLE_CLOSE_ACTION_EVT);
} }
@ -303,13 +303,13 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀
BSP_BlockSleep(); BSP_BlockSleep();
LED_VALVE_OPEN; LED_VALVE_OPEN;
DelayUs(200); // DelayUs(200);
VALVE_STOP(); VALVE_STOP();
logDebug("MOTOR_INIT"); logDebug("MOTOR_INIT");
tmos_start_task(vavle_task_id, VAVLE_OPEN_ACTION_EVT, MS1_TO_SYSTEM_TIME(CHARGE_TIME_MS)); tmos_start_task(vavle_task_id, VAVLE_OPEN_ACTION_EVT, MS1_TO_SYSTEM_TIME(200));
return (events ^ VAVLE_OPEN_START_EVT); return (events ^ VAVLE_OPEN_START_EVT);
} }
@ -323,7 +323,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀
logDebug("VALVE_OPEN"); logDebug("VALVE_OPEN");
tmos_start_task(vavle_task_id, VAVLE_OPEN_END_EVT, MS1_TO_SYSTEM_TIME(1600)); tmos_start_task(vavle_task_id, VAVLE_OPEN_END_EVT, MS1_TO_SYSTEM_TIME(CHARGE_TIME_MS));
return (events ^ VAVLE_OPEN_ACTION_EVT); return (events ^ VAVLE_OPEN_ACTION_EVT);
} }