Mirjana Radosavljevic
/
BMS_Master-Test
BMS Master HW test - 20/21
main.cpp
- Committer:
- minamax
- Date:
- 2021-06-27
- Revision:
- 1:26659a89d49e
- Parent:
- 0:4fedfbc3c6b8
File content as of revision 1:26659a89d49e:
#include "mbed.h" #include "PwmIn.h" //FTDI (TX, RX, BAUDRATE) Serial pc(PC_12, PD_2, 9600); //SHUTDOWN DigitalOut SHD_Control(PA_8); DigitalIn SHD_Status(PC_6); DigitalOut WakeUp(PC_9); DigitalIn fault(PC_8); //ADC AnalogIn voltage(PC_0); AnalogIn current(PC_1); //AIRs DigitalOut AIR_P_Control(PC_2); DigitalOut AIR_N_Control(PC_3); DigitalIn AIR_P_Status(PA_6); DigitalIn AIR_N_Status(PA_7); //Precharge DigitalOut PRECHRG_Control(PC_7); DigitalIn PRECHRG_Status(PC_5); //IMD PwmIn imdPWM(PB_3); void callback() { char byte; pc.printf("callback\n"); if(pc.readable()) { byte = pc.getc(); pc.printf("%d\n", byte); } } int main() { pc.printf("Begin test\n"); pc.attach(&callback); //int shd_cnt = 0; int air_cnt = 0; int prechrg_cnt = 0; int i = 0; float currentVal = 0; /*pc.printf("Closing SHUTDOWN!\n"); SHD_Control = 1; //RELJA PRITISNI DUGME if(SHD_Status) pc.printf("SHUTDOWN open!\n"); else pc.printf("SHUTDOWN closed!\n");*/ while(1) { //UART FROM MASTER TO PC //pc.printf("Hi. I am BMS master...\n"); /* pc.printf("Closing AIRs!\n"); AIR_P_Control = 1; AIR_N_Control = 1; if(++prechrg_cnt % 15 == 0) { if(++i % 2) { pc.printf("Start PRECHARGE!\n"); PRECHRG_Control = 1; } else { pc.printf("Stop PRECHARGE!\n"); PRECHRG_Control = 0; } } if(PRECHRG_Status) pc.printf("PRECHARGE closed!\n"); else pc.printf("PRECHARGE open!\n"); */ /* wait(4); if(AIR_P_Status == 0 && AIR_N_Status == 0) { pc.printf("Both AIRs open!\n"); pc.printf("Closing SHUTDOWN!\n"); SHD_Control = 1; //RELJA PRITISNI DUGME } else if(AIR_P_Status && AIR_N_Status) { pc.printf("Both AIRs closed!\n"); pc.printf("Closing SHUTDOWN!\n"); SHD_Control = 1; //RELJA PRITISNI DUGME } else if (AIR_P_Status == 0 && AIR_N_Status == 1) { pc.printf("AIR+ open, AIR- closed!\n"); pc.printf("ERROR: OPEN SHUTDOWN!\n"); pc.printf("Opening SHUTDOWN!\n"); SHD_Control = 0; } else if (AIR_P_Status == 1 && AIR_N_Status == 0) { pc.printf("AIR+ closed, AIR- open!\n"); pc.printf("ERROR: OPEN SHUTDOWN!\n"); pc.printf("Opening SHUTDOWN!\n"); SHD_Control = 0; } wait(1); if(SHD_Status) pc.printf("SHUTDOWN open!\n"); else pc.printf("SHUTDOWN closed!\n"); wait(3); */ /* //AIRs if(++air_cnt % 30 == 0) { if(++i % 2) { pc.printf("Closing AIRs!\n"); AIR_P_Control = 1; AIR_N_Control = 1; } else { pc.printf("Opening AIRs!\n"); AIR_P_Control = 0; AIR_N_Control = 0; } } if(AIR_P_Status == 0 && AIR_N_Status == 0) pc.printf("Both AIRs open!\n"); else if(AIR_P_Status && AIR_N_Status) pc.printf("Both AIRs closed!\n"); //SHUTDOWN CIRCUIT if(++shd_cnt % 30 == 0) { if(SHD_Status) { pc.printf("Closing SHUTDOWN!\n"); SHD_Control = 1; //RELJA PRITISNI DUGME } else { pc.printf("Opening SHUTDOWN!\n"); SHD_Control = 0; } } if(SHD_Status) pc.printf("SHUTDOWN open!\n"); else pc.printf("SHUTDOWN closed!\n"); */ /* //WAKEUP WakeUp = 1; pc.printf("WakeUp is 1\n"); wait(1); */ /* //VOLTAGE AND CURRENT currentVal = current.read(); pc.printf("Voltage = %.4f\n", voltage.read()*3.3f*273.2f); pc.printf("Current = %.4f\n\n", currentVal); */ /* //IMD float period = imdPWM.period(); float duty_cycle = imdPWM.dutycycle(); pc.printf("Dutycycle = %.4f\n", duty_cycle); pc.printf("Freq = %.4f\n\n", 1/period); if(SHD_Status) pc.printf("SHUTDOWN open!\n"); else pc.printf("SHUTDOWN closed!\n"); */ WakeUp = 1; wait(2); WakeUp = 0; wait(2); if(fault) pc.printf("Fault\n"); else pc.printf("No Fault\n\n"); } }