ADM/GW/src/Operation_Mode_Layer/MCU/Motor_logic.c

81 lines
1.5 KiB
C

#include "Ignition.h"
#include "Global_Variable.h"
#include "BMS_SOC.h"
#include "Low_SOC_mode.h"
#include "NO_MCU_SIG.h"
#include "can.h"
#include "board.h"
#include "Motor_logic.h"
void Motor_init(void){
if(GV_VCU_GearSelStat == 0 ){ //P
GV_VCU_GearCmd= 7;
GV_VCU_MtrDir = 0;
GV_VCU_EPAM_Park_Request_to_EPC = 1;
}else if(GV_VCU_GearSelStat == 1){ //R
GV_VCU_GearCmd= 2;
GV_VCU_MtrDir = 2;
GV_VCU_EPAM_Park_Request_to_EPC = 2;
}else if(GV_VCU_GearSelStat == 2){ //N
GV_VCU_GearCmd= 3;
GV_VCU_MtrDir = 0;
GV_VCU_EPAM_Park_Request_to_EPC = 2;
}else if(GV_VCU_GearSelStat == 3){ //D
GV_VCU_GearCmd= 4;
GV_VCU_MtrDir = 1;
GV_VCU_EPAM_Park_Request_to_EPC = 2;
}
if(GV_VCU_BmsFlt == 0 && GV_VCU_BmsHvSt == 1 ){
GV_VCU_PwrEnable = 1;
GV_VCU_ControlMode = 1;
GV_VCU_Ready = 1;
GV_VCU_TorqueContol = 1;
}
GV_VCU_BmsFlt = GV_ACU_BMS_FltSta;
GV_VCU_BmsHvSt = GV_BMS_HVOn_STA;
GV_VCU_PosTrqLimit = 80; //updated 0829
GV_VCU_NegTrqLimit = -50;
}
float Motor_Tunning = 2;
//void RC_Motor_Logic (void){
//
//
// if(GV_VCU_Drive_Mode == 1){
// if(GV_VCU_RC_long_Ctl_mode == 1){
// GV_VCU_TrqCmd = GV_RC_Drive_ACC_Cmd * 10;
// }else if(GV_VCU_RC_long_Ctl_mode == 0 ){
// GV_VCU_TrqCmd = GV_RC_Vx_Command*Motor_Tunning;
// }
// }
//}
void ACU_Motor_Logic (void){
if(GV_VCU_Drive_Mode == 0){
if(GV_VCU_ACU_long_Ctl_mode == 1){
GV_VCU_TrqCmd = GV_ACU_Drive_ACC_Cmd * 10;
}else if(GV_VCU_ACU_long_Ctl_mode == 0 ){
GV_VCU_TrqCmd = GV_ACU_Vx_Command / 5;
}
}
}