2.2V低压关阀,VAVLE_LOOP_DECT_EVT和performPeriodicTask错开?升压时候别测

This commit is contained in:
stark1898y 2025-05-30 16:36:43 +08:00
parent 82b0fd0a4f
commit 1f6020a3a9
4 changed files with 81 additions and 89 deletions

View File

@ -729,38 +729,10 @@ static void peripheralStateNotificationCB(gapRole_States_t newState, gapRoleEven
* @return none * @return none
*/ */
static void performPeriodicTask(void) static void performPeriodicTask(void)
{
if (boost_en_flag == 0 && GPIOA_ReadITFlagBit(BOOST_APIN) == 0)
{ {
gValveData.bat = BSP_ReadVbat(); gValveData.bat = BSP_ReadVbat();
#if 0
BSP_BlockSleep();
BSP_RequestBoost();
// DelayMs(1);
ShowLed();
DelayMs(2);
LED_ALL_OFF_DEINIT;
// BEEP_OFF_DEINIT;
BSP_NoNeedBoost();
BSP_RequestSleep();
#endif
// // 如果电压低就都不亮灯、蜂鸣器
// if (bat_mv <= LOW_VABAT_CLOSE_MV)
// {
// logDebug("低压关阀");
// tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT);
// }
// if (gValveData.bat <= LOW_VABAT_CLOSE_VALUE)
// {
// gValveData.switch_status = kClosed;
// tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT);
// }
// else if (gValveData.bat <= LOW_VABAT_ALARM_VALUE)
// {
// tmos_set_event(vavle_task_id, VAVLE_LOW_VBAT_ALARM_EVT);
// }
// TODO温湿度传感器读错的话就不发了 // TODO温湿度传感器读错的话就不发了
float _humi, _temp; float _humi, _temp;
if (BSP_ReadTempHumi(&_humi, &_temp) == 0) if (BSP_ReadTempHumi(&_humi, &_temp) == 0)
@ -791,6 +763,11 @@ static void performPeriodicTask(void)
tmos_set_event(led_task_id, LED_SHOW_START_EVT); tmos_set_event(led_task_id, LED_SHOW_START_EVT);
} }
else if(GPIOA_ReadITFlagBit(BOOST_APIN) == 1)
{
tmos_start_task(Peripheral_TaskID, SBP_PERIODIC_EVT, MS1_TO_SYSTEM_TIME(1000));
}
}
/********************************************************************* /*********************************************************************
* @fn peripheralChar4Notify * @fn peripheralChar4Notify

View File

@ -30,18 +30,19 @@ extern tmosTaskID led_task_id;
/**********************BOOST 12V_EN PA1************************ */ /**********************BOOST 12V_EN PA1************************ */
#define BOOST_APIN GPIO_Pin_1
#define BOOST_EN \ #define BOOST_EN \
do \ do \
{ \ { \
GPIOA_SetBits(GPIO_Pin_1); \ GPIOA_SetBits(BOOST_APIN); \
GPIOA_ModeCfg(GPIO_Pin_1, GPIO_ModeOut_PP_5mA); \ GPIOA_ModeCfg(BOOST_APIN, GPIO_ModeOut_PP_5mA); \
} while (0); } while (0);
#define BOOST_OFF_DEINIT \ #define BOOST_OFF_DEINIT \
do \ do \
{ \ { \
GPIOA_ResetBits(GPIO_Pin_1); \ GPIOA_ResetBits(BOOST_APIN); \
GPIOA_ModeCfg(GPIO_Pin_1, GPIO_ModeIN_PD); \ GPIOA_ModeCfg(BOOST_APIN, GPIO_ModeIN_PD); \
} while (0); } while (0);
/***********************BEEP PA0************************ */ /***********************BEEP PA0************************ */

View File

@ -2,7 +2,7 @@
* @Author : stark1898y 1658608470@qq.com * @Author : stark1898y 1658608470@qq.com
* @Date : 2024-12-12 15:55:38 * @Date : 2024-12-12 15:55:38
* @LastEditors : stark1898y 1658608470@qq.com * @LastEditors : stark1898y 1658608470@qq.com
* @LastEditTime : 2025-05-30 13:51:02 * @LastEditTime : 2025-05-30 16:33:29
* @FilePath : \BLE_TYQ_CH584M\BSP\inc\bsp_valve.h * @FilePath : \BLE_TYQ_CH584M\BSP\inc\bsp_valve.h
* @Description : * @Description :
* *
@ -15,6 +15,8 @@
extern tmosTaskID vavle_task_id; extern tmosTaskID vavle_task_id;
extern volatile uint8_t boost_en_flag;
#define VAVLE_RX_DATA_EVT (0x0001 << 0) #define VAVLE_RX_DATA_EVT (0x0001 << 0)
#define VAVLE_TX_DATA_EVT (0x0001 << 1) #define VAVLE_TX_DATA_EVT (0x0001 << 1)
@ -38,7 +40,7 @@ extern tmosTaskID vavle_task_id;
// #define VALVE_LOW_VBAT_ALARM_PERIOD_MS (1000 * 60 * 10) // #define VALVE_LOW_VBAT_ALARM_PERIOD_MS (1000 * 60 * 10)
#define VALVE_DECT_PERIOD_MS (1000 * 60 * 10) #define VALVE_DECT_PERIOD_MS (1000 * 60 * 3)
#define CHARGE_TIME_MS (2000) #define CHARGE_TIME_MS (2000)
@ -48,7 +50,7 @@ extern tmosTaskID vavle_task_id;
// #define LOW_VABAT_CLOSE_VALUE 2000 // #define LOW_VABAT_CLOSE_VALUE 2000
#define LOW_VABAT_CLOSE_MV 2150 #define LOW_VABAT_CLOSE_MV 2200
#define HIGN_TEMP_CLOSE_C 60 #define HIGN_TEMP_CLOSE_C 60

View File

@ -2,7 +2,7 @@
* @Author : stark1898y 1658608470@qq.com * @Author : stark1898y 1658608470@qq.com
* @Date : 2024-12-15 15:01:15 * @Date : 2024-12-15 15:01:15
* @LastEditors : stark1898y 1658608470@qq.com * @LastEditors : stark1898y 1658608470@qq.com
* @LastEditTime : 2025-05-29 18:42:42 * @LastEditTime : 2025-05-30 16:30:38
* @FilePath : \BLE_TYQ_CH584M\BSP\src\bsp_valve.c * @FilePath : \BLE_TYQ_CH584M\BSP\src\bsp_valve.c
* @Description : * @Description :
* *
@ -31,6 +31,8 @@
#undef LOG_TAG #undef LOG_TAG
#define LOG_TAG "BSP_VALVE" #define LOG_TAG "BSP_VALVE"
volatile uint8_t boost_en_flag;
TsValveData gValveData = {0}; TsValveData gValveData = {0};
uint16_t bat_mv; uint16_t bat_mv;
@ -393,10 +395,11 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events)
if (events & VAVLE_CLOSE_START_EVT) if (events & VAVLE_CLOSE_START_EVT)
{ {
logDebug("VAVLE_CLOSE_START_EVT"); logDebug("VAVLE_CLOSE_START_EVT");
DelayMs(1); // DelayMs(1);
BSP_BlockSleep(); BSP_BlockSleep();
BSP_RequestBoost(); BSP_RequestBoost();
DelayMs(10); boost_en_flag = 1;
// DelayMs(10);
EMV_CHARGE_EN; EMV_CHARGE_EN;
@ -468,6 +471,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events)
tmos_set_event(Peripheral_TaskID, SBP_REPLY_CMD_EVT); tmos_set_event(Peripheral_TaskID, SBP_REPLY_CMD_EVT);
logDebug("VAVLE_CLOSE_END_EVT"); logDebug("VAVLE_CLOSE_END_EVT");
boost_en_flag = 0;
return (events ^ VAVLE_CLOSE_END_EVT); return (events ^ VAVLE_CLOSE_END_EVT);
} }
// 开始测量电磁铁电感 // 开始测量电磁铁电感
@ -533,7 +537,8 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events)
if (events & VAVLE_LOOP_DECT_EVT) if (events & VAVLE_LOOP_DECT_EVT)
{ {
logDebug("VAVLE_LOOP_DECT_EVT"); logDebug("VAVLE_LOOP_DECT_EVT");
if (GPIOA_ReadITFlagBit(BOOST_APIN) == 0)
{
// TODO亮灯或者蜂鸣器的时候读电压就低了 // TODO亮灯或者蜂鸣器的时候读电压就低了
gValveData.bat = BSP_ReadVbat(); gValveData.bat = BSP_ReadVbat();
@ -542,7 +547,8 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events)
if (bat_mv <= LOW_VABAT_CLOSE_MV) if (bat_mv <= LOW_VABAT_CLOSE_MV)
{ {
gValveData.switch_status = kClosed; gValveData.switch_status = kClosed;
tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT); logDebug("低压关阀");
tmos_start_task(vavle_task_id, VAVLE_CLOSE_START_EVT, MS1_TO_SYSTEM_TIME(1100));
} }
// else if (gValveData.bat <= LOW_VABAT_ALARM_VALUE) // else if (gValveData.bat <= LOW_VABAT_ALARM_VALUE)
// { // {
@ -556,7 +562,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events)
if (gValveData.temp >= HIGN_TEMP_CLOSE_C) if (gValveData.temp >= HIGN_TEMP_CLOSE_C)
{ {
logDebug("高温关阀"); logDebug("高温关阀");
tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT); tmos_start_task(vavle_task_id, VAVLE_CLOSE_START_EVT, MS1_TO_SYSTEM_TIME(1000));
} }
} }
else else
@ -564,6 +570,12 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events)
logError("Read TempHumi Err"); logError("Read TempHumi Err");
} }
tmos_start_task(vavle_task_id, VAVLE_LOOP_DECT_EVT, MS1_TO_SYSTEM_TIME(VALVE_DECT_PERIOD_MS)); tmos_start_task(vavle_task_id, VAVLE_LOOP_DECT_EVT, MS1_TO_SYSTEM_TIME(VALVE_DECT_PERIOD_MS));
}
else
{
// 延后5s再测
tmos_start_task(vavle_task_id, VAVLE_LOOP_DECT_EVT, MS1_TO_SYSTEM_TIME(5000));
}
return (events ^ VAVLE_LOOP_DECT_EVT); return (events ^ VAVLE_LOOP_DECT_EVT);
} }
@ -660,7 +672,7 @@ void BSP_VAVLE_Init(void)
gValveData.type = kTyq; gValveData.type = kTyq;
gValveData.bat = BSP_ReadVbat(); gValveData.bat = BSP_ReadVbat();
tmos_start_task(vavle_task_id, VAVLE_LOOP_DECT_EVT, MS1_TO_SYSTEM_TIME(1000)); tmos_start_task(vavle_task_id, VAVLE_LOOP_DECT_EVT, MS1_TO_SYSTEM_TIME(VALVE_DECT_PERIOD_MS));
// GPIOA_ResetBits(GPIO_Pin_2); // GPIOA_ResetBits(GPIO_Pin_2);
// GPIOA_ModeCfg(GPIO_Pin_2, GPIO_ModeIN_PU); // GPIOA_ModeCfg(GPIO_Pin_2, GPIO_ModeIN_PU);