Files
GbTModuleEV/Core/Src/load.c
T

69 lines
1.6 KiB
C

#include "load.h"
#include "board.h"
#include "debug.h"
#include "connector.h"
#define COOLDOWN_TIME 60000
static void LOAD_LogEnableChanges(void){
static uint8_t inited = 0U;
static uint8_t prev_enable_0 = 0U;
static uint8_t prev_enable_1 = 0U;
if(!inited){
prev_enable_0 = CONN[0].enableLoad;
prev_enable_1 = CONN[1].enableLoad;
inited = 1U;
return;
}
if(prev_enable_0 != CONN[0].enableLoad){
log_printf(LOG_INFO, "GBT Load %s\n", CONN[0].enableLoad ? "enabled" : "disabled");
prev_enable_0 = CONN[0].enableLoad;
}
if(prev_enable_1 != CONN[1].enableLoad){
log_printf(LOG_INFO, "CCS Load %s\n", CONN[1].enableLoad ? "enabled" : "disabled");
prev_enable_1 = CONN[1].enableLoad;
}
}
void LOAD_Init(){
RELAY_Write(RELAY_1, 0);
RELAY_Write(RELAY_2, 0);
RELAY_Write(RELAY_3, 0);
RELAY_Write(RELAY_4, 0);
RELAY_Write(RELAY_5, 0);
}
void LOAD_Task(){
static uint32_t load_tick = 0;
LOAD_LogEnableChanges();
if(CONN[0].enableLoad || CONN[1].enableLoad){
load_tick = HAL_GetTick();
}
if((HAL_GetTick() - load_tick < COOLDOWN_TIME) && (load_tick!=0)){
RELAY_Write(RELAY_1, 1);
}else{
RELAY_Write(RELAY_1, 0);
}
if(CONN[0].enableLoad){
RELAY_Write(RELAY_2, 1);
}else{
RELAY_Write(RELAY_2, 0);
}
if(CONN[1].enableLoad){
RELAY_Write(RELAY_3, 1);
}else{
RELAY_Write(RELAY_3, 0);
}
// if(CONN[0].enableLoad && CONN[1].enableLoad){ // объединение нагрузок
// RELAY_Write(RELAY_4, 0);
// }else{
// RELAY_Write(RELAY_4, 1);
// }
}