fix reset, unplug delay 5s

This commit is contained in:
2026-03-17 15:55:46 +03:00
parent 0e9b352db7
commit 8574ffadc9
7 changed files with 23633 additions and 23565 deletions

View File

@@ -16,6 +16,26 @@ extern uint8_t config_initialized;
gbtCcState_t CC_STATE_FILTERED;
// name - уникальный идентификатор таймера для данного места использования
// cond - условие, которое должно непрерывно держаться delay_ms мс
// delay_ms - задержка в миллисекундах
#define DELAYED_HOLD_MS(name, cond, delay_ms) \
({ \
static uint32_t name = 0; \
uint8_t __hold_result = 0; \
if (cond) { \
if (name == 0) { \
name = HAL_GetTick(); \
} else if ((HAL_GetTick() - name) >= (uint32_t)(delay_ms)) {\
__hold_result = 1; \
name = 0; \
} \
} else { \
name = 0; \
} \
__hold_result; \
})
void CONN_Task(){
switch (connectorState){
@@ -109,7 +129,7 @@ void CONN_Task(){
//TODO Force unlock time limit
if(CONN.connControl == CMD_FORCE_UNLOCK) GBT_ForceLock(0);
if(CONN_CC_GetState()==GBT_CC_6V){
if(DELAYED_HOLD_MS(cc6v_hold_tick, CONN_CC_GetState()==GBT_CC_6V, 5000)){
GBT_Lock(0);
CONN_SetState(Unplugged);
}

View File

@@ -96,9 +96,11 @@ void SC_CommandHandler(ReceivedCommand_t* cmd) {
SC_SendPacket(NULL, 0, RESP_SUCCESS);
while(huart2.gState == HAL_UART_STATE_BUSY_TX); // Ожидание завершения передачи
HAL_Delay(10);
// 3. Выполняем программный сброс
NVIC_SystemReset();
return; // Сюда код уже не дойдет, но для компилятора нужно
return; // Сюда код уже не дойдет, но для компилятора нxужно
case CMD_ISOLATION_STATUS:
if (cmd->argument_length == sizeof(IsolationStatusPacket_t)) {

View File

@@ -1,6 +1,6 @@
../Core/Src/connector.c:19:6:CONN_Task 32
../Core/Src/connector.c:126:6:CONN_SetState 15
../Core/Src/connector.c:147:6:CONN_CC_ReadStateFiltered 4
../Core/Src/connector.c:166:9:CONN_CC_GetState 1
../Core/Src/connector.c:169:9:CONN_CC_GetStateRaw 9
../Core/Src/connector.c:182:7:CONN_CC_GetAdc 1
../Core/Src/connector.c:39:6:CONN_Task 35
../Core/Src/connector.c:146:6:CONN_SetState 15
../Core/Src/connector.c:167:6:CONN_CC_ReadStateFiltered 4
../Core/Src/connector.c:186:9:CONN_CC_GetState 1
../Core/Src/connector.c:189:9:CONN_CC_GetStateRaw 9
../Core/Src/connector.c:202:7:CONN_CC_GetAdc 1

View File

@@ -1,3 +1,3 @@
../Drivers/CMSIS/Include/core_cm3.h:1762:34:__NVIC_SystemReset 1
../Core/Src/serial_handler.c:28:6:SC_CommandHandler 19
../Core/Src/serial_handler.c:128:6:monitoring_data_callback 1
../Core/Src/serial_handler.c:130:6:monitoring_data_callback 1

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff