Hello I've been programming a State Machine in a C-script in Plecs and I'd Had the issue that at the time I compile it, it says that there is an error in all the lines that I used an if statement saying "expected expression". I tried using sublime text to be sure that I put right all the brackets and used sublimeLintern to review if I had some syntax errors.
//Definicion de variables
enum States{INIT,REG,CON_CAR,CV_FAST,CC_FAST,CC_SLOW,CV_SLOW,CC_BOOST,CV_BOOST,TRANS}
enum States Charger_State_Machine = INIT;
//Maquina de estados
switch(Charger_State_Machine){
case INIT:
//Inicio de operación
if(start_carga==1){
Charger_State_Machine = CON_CAR;
}
if(start_carga==0){
Charger_State_Machine=CC_BOOST;
}
break;
case CON_CAR:
//Auto conectado
if(start_carga==0){
Charger_State_Machine=TRANS;
}
if(Charger_voltage>= trigger_voltage){
Charger_State_Machine= CC_FAST;
}
else{
Charger_State_Machine=CC_SLOW;
}
break;
//Corriente constante en carga rapida
case CC_FAST:
if(start_carga==0){
Charger_State_Machine=TRANS;
}
if(EV_VOLT>=EV_VOLT_TRIGGER){
Charger_State_Machine=CV_FAST;
}
//Tensión constante en carga rápida
break;
case CV_FAST:
if(start_carga==0){
Charger_State_Machine=TRANS;
}
if(EV_CUR<EV_CUR_TRIGGER){
Charger_State_Machine=REG;
}
break;
//Corriente constate en carga lenta
case CC_SLOW:
if(start_carga==0){
Charger_State_Machine=TRANS;
}
if(EV_VOLT>=EV_VOLT_TRIGGER){
Charger_State_Machine=CV_SLOW;
}
break;
//Tensión constante en carga lenta
case CV_SLOW_SLOW:
if(start_carga==0){
Charger_State_Machine=TRANS;
}
if(EV_CUR<=EV_CUR_TRIGGER){
Charger_State_Machine=CC_BOOST;
}
break;
//Estado transitorio
case TRANS:
if(start_carga==1){
Charger_State_Machine=CON_CAR;
}
if(start_carga==0){
Charger_State_Machine=CC_BOOST;
}
break;
//Corriente constante modo Boost
case CC_BOOST:
if(start_carga==1){
Charger_State_Machine=CON_CAR;
}
if(CHARGER_VOLT>=CHARGER_VOLT_TRIGGER){
Charger_State_Machine=CV_BOOST;
}
break;
//Tensión constante modo Boost
case CV_BOOST_BOOST:
if(start_carga==1){
Charger_State_Machine=CON_CAR;
}
if(CHARGER_CUR<=CHARGER_CUR_TRIGGER){
Charger_State_Machine=INIT;
}
break;
//En caso de que todo falle vuelvo al estado inicial
default:
Charger_State_Machine=INIT;
break;
}
Aucun commentaire:
Enregistrer un commentaire