Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FreescaleIAP mbed-rtos mbed
Fork of workinQM_5thJan_azad by
Diff: EPS.cpp
- Revision:
- 99:2cc5c0c98cb3
- Parent:
- 96:6603fedb6b69
- Child:
- 101:cf1976e16f28
--- a/EPS.cpp Tue Feb 14 16:18:16 2017 +0000 +++ b/EPS.cpp Thu Mar 09 07:42:15 2017 +0000 @@ -466,18 +466,17 @@ SelectLineb1=0; SelectLineb2=0; SelectLineb3=0; - + wait_ms(1); //collecting data for(Iteration=0; Iteration<16; Iteration++) { actual_data.voltage_actual[Iteration]=VoltageInput.read(); - //wait_ms(100); //remove - /// eps_pc.printf("\n\rthe raw voltage values VOL[%d] = %f",Iteration,actual_data.voltage_actual[Iteration]); - wait_ms(2); + actual_data.current_actual[Iteration]=CurrentInput.read(); - wait_ms(2); - //eps_pc.printf("\n\rthe raw current values CURR[%d] = %f",Iteration,actual_data.current_actual[Iteration]); - + // eps_pc.printf("\n\r %d %d %d %d", (int)SelectLineb3,(int)SelectLineb2,(int)SelectLineb1,(int)SelectLineb0); + eps_pc.printf("\n\rthe raw current values CURR[%d] = %f",Iteration,3.3*CurrentInput.read()/(50*0.025)); + + SelectLinea0=!(SelectLinea0); if(Iteration%2==1) SelectLinea1=!(SelectLinea1); @@ -487,10 +486,12 @@ SelectLinea3=!(SelectLinea3); int s0,s1,s2,s3; s0=SelectLineb0=SelectLinea0; - s1=SelectLineb1=SelectLinea2; + s1=SelectLineb1=SelectLinea1; s2=SelectLineb2=SelectLinea2; s3=SelectLineb3=SelectLinea3; -//// printf("\n\r %d %d %d %d", s0,s1,s2,s3); + // eps_pc.printf("\n\r %d %d %d %d", (int)SelectLinea3,(int)SelectLinea2,(int)SelectLinea1,(int)SelectLinea0); + // eps_pc.printf("\n\r %d %d %d %d", (int)SelectLineb3,(int)SelectLineb2,(int)SelectLineb1,(int)SelectLineb0); + //// printf("\n\r %d %d %d %d", s0,s1,s2,s3); wait_ms(1); /*$ wait of 3 milli sec $*/ @@ -506,25 +507,18 @@ } for(Iteration=0;Iteration<16;Iteration++){ + + if(Iteration<8)// thermistors before in version 2.1 now from12th element but 8-11 are null values only { - actual_data.current_actual[Iteration]= 1000*(actual_data.current_actual[Iteration]*3.3)/(50*rsens); - // if it gives the better resolution //actual_data.current_actual[Iteration]= 100*(actual_data.current_actual[Iteration]*3.3)/(50*rsens); - - } - else if(Iteration==8) - { - actual_data.current_actual[Iteration] = (actual_data.current_actual[Iteration]*3.3*62)/11.0;//Load BUS voltage + actual_data.current_actual[Iteration]= (actual_data.current_actual[Iteration]*330)/(50*0.025); + + + // eps_pc.printf("I[%d],\t\r\n %f",Iteration,actual_data.current_actual[Iteration]); + + } - else if(Iteration==9) - { - actual_data.current_actual[Iteration]= (-90.7*(3.3*actual_data.current_actual[Iteration]))+190.1543;//Temperature - } - /*1oth and 11th data are NC*/ - else if(Iteration<12) - { - actual_data.current_actual[Iteration]= 0; - } + else{ /*earlier loop missing*/ actual_data.current_actual[Iteration] = (actual_data.current_actual[Iteration]*3.3); int resistance; @@ -543,11 +537,12 @@ actual_data.current_actual[Iteration] = actual_data.current_actual[Iteration] - 273.15; /*converting from C to kelvin*/ } - // printf("Current[%d] %f\r\n",Iteration,actual_data.current_actual[Iteration]); + // printf("Current[%d] %f\r\n",Iteration,actual_data.current_actual[Iteration]); } - //actual_data.BAE_temp_actual=(-90.7*3.3*actual_data.BAE_temp_actual)+190.1543; - actual_data.BAE_temp_actual=(-90.7*3.3*BAE_temp_sensor.read())+190.1543; + + // actual_data.BAE_temp_actual=(-90.7*3.3*BAE_temp_sensor.read())+190.1543; + //actual_data.Batt_voltage_actual = (Batt_voltage.read()*3.3*5.63) * 10; actual_data.Batt_voltage_actual = vcell(); @@ -555,21 +550,30 @@ for(Iteration=0; Iteration<16; Iteration++){ if(Iteration==1) - quant_data.voltage_quant[Iteration] = float_to_uint8(-50,150,actual_data.voltage_actual[Iteration]);//quantiz(tstart,tstep,actual_data.voltage_actual[Iteration]); /*for keeping the record of the temp'*/ + quant_data.voltage_quant[Iteration] = 50+actual_data.voltage_actual[Iteration];//float_to_uint8(-50,150,actual_data.voltage_actual[Iteration]);//quantiz(tstart,tstep,actual_data.voltage_actual[Iteration]); /*for keeping the record of the temp'*/ else quant_data.voltage_quant[Iteration] = 10*actual_data.voltage_actual[Iteration]; //quant_data.voltage_quant[Iteration] = float_to_uint8(0.0,25,actual_data.voltage_actual[Iteration]);//quantiz(vstart,vstep,actual_data.voltage_actual[Iteration]); - //eps_pc.printf("\n\r quan vol data[%d],\t %d",Iteration,quant_data.voltage_quant[Iteration]); + // eps_pc.printf("\n\r quan vol data[%d],\t %d",Iteration,quant_data.voltage_quant[Iteration]); } for(Iteration=0;Iteration<16;Iteration++){ - if(Iteration<8)/*consedering 200 mili amp as limit here*/ - quant_data.current_quant[Iteration] = float_to_uint8(0.0,2640,actual_data.current_actual[Iteration]);//quantiz(cstart,cstep,actual_data.current_actual[Iteration]); - else if(Iteration==8) + + + if(Iteration==1)/*consedering 200 mili amp as limit here*/ + { + quant_data.current_quant[Iteration] = actual_data.current_actual[Iteration]; + //quantiz(cstart,cstep,actual_data.current_actual[Iteration]); + // quant_data.current_quant[Iteration] = float_to_uint8(0.0,2640,actual_data.current_actual[Iteration]); + // eps_pc.printf("\n\r quan curr1 data[%d] = %d ",Iteration,quant_data.current_quant[Iteration] ); + } + else if(Iteration<9)/*consedering 200 mili amp as limit here*/ + { quant_data.current_quant[Iteration] = 10*actual_data.current_actual[Iteration]; - //quant_data.current_quant[Iteration] = float_to_uint8(0.0,25,actual_data.current_actual[Iteration]);//quantiz(tstart_thermistor,tstep_thermistor,actual_data.current_actual[Iteration]); //the bus voltage inside - else if(Iteration==9) - quant_data.current_quant[Iteration] = float_to_uint8(-50,150,actual_data.current_actual[Iteration]); /*the temp of board*/ + //quantiz(cstart,cstep,actual_data.current_actual[Iteration]); + // quant_data.current_quant[Iteration] = float_to_uint8(0.0,2640,actual_data.current_actual[Iteration]); + // eps_pc.printf("\n\r quan curr1 data[%d] = %d ",Iteration,quant_data.current_quant[Iteration] ); + } else if(Iteration>9)/*changed from 25 to 300 what value do we expectt?*/ quant_data.current_quant[Iteration] = float_to_uint8(-50,100,actual_data.current_actual[Iteration]); @@ -587,7 +591,7 @@ /*no need*/// ->> quant_data.Batt_gauge_quant[2]=quantiz(crate_start,crate_step,actual_data.Batt_gauge_actual[2]); /*no need*/// ->> quant_data.Batt_gauge_alerts=actual_data.Batt_gauge_actual[3]; - quant_data.BAE_temp_quant= float_to_uint8(-50,150,actual_data.BAE_temp_actual); + quant_data.BAE_temp_quant= 5*actual_data.BAE_temp_actual; //// for(Iteration=0;Iteration<3;Iteration++){ //// quant_data.AngularSpeed_quant[Iteration]=actual_data.AngularSpeed_actual[Iteration]; @@ -803,7 +807,7 @@ eps_pc.printf("Battery TMP1 in LONG_HK: %d\n\r",LONG_HK_data[1][125]); LONG_HK_data[1][126] = quant_data.Batt_temp_quant[1]; eps_pc.printf("Battery TMP2 in LONG_HK: %d\n\r",LONG_HK_data[1][126]); - LONG_HK_data[1][127] = BCN_TMP; + LONG_HK_data[1][127] = BCN_TMP+50; eps_pc.printf("BCN TMP in LONG_HK: %d\n\r",LONG_HK_data[1][127]); LONG_HK_data[1][128] = 0x00; LONG_HK_data[1][129] = 0x00; @@ -868,8 +872,8 @@ bae_HK_minmax.Batt_SOC_min = (uint8_t)(actual_data.Batt_gauge_actual[1]); bae_HK_minmax.Batt_SOC_max = (uint8_t)(actual_data.Batt_gauge_actual[1]); - bae_HK_minmax.BCN_TEMP_min = BCN_TMP; - bae_HK_minmax.BCN_TEMP_max = BCN_TMP; + bae_HK_minmax.BCN_TEMP_min = BCN_TMP+50; + bae_HK_minmax.BCN_TEMP_max = BCN_TMP+50; for (int i = 0; i < 3; ++i){ bae_HK_minmax.bit_data_acs_mg_min[i] = actual_data.bit_data_acs_mg[i]; @@ -915,8 +919,8 @@ bae_HK_minmax.Batt_SOC_min = saveMin(bae_HK_minmax.Batt_SOC_min, ((uint8_t)(actual_data.Batt_gauge_actual[1])) ); bae_HK_minmax.Batt_SOC_max = saveMax(bae_HK_minmax.Batt_SOC_max, ((uint8_t)(actual_data.Batt_gauge_actual[1])) ); - bae_HK_minmax.BCN_TEMP_min = saveMin(bae_HK_minmax.BCN_TEMP_min, BCN_TMP); - bae_HK_minmax.BCN_TEMP_max = saveMin(bae_HK_minmax.BCN_TEMP_max, BCN_TMP); + bae_HK_minmax.BCN_TEMP_min = saveMin(bae_HK_minmax.BCN_TEMP_min, BCN_TMP+50); + bae_HK_minmax.BCN_TEMP_max = saveMax(bae_HK_minmax.BCN_TEMP_max, BCN_TMP+50); for (int i = 0; i < 3; ++i) { @@ -1448,4 +1452,41 @@ temp[1]=(float)bit_data*sensitivity; ssn2=1; -} \ No newline at end of file +} +void Read_I_B_IN_BCN() +{ + float test_current; + SelectLineb0=0; + SelectLineb1=0; + SelectLineb2=1; + SelectLineb3=0; + wait_ms(1); + test_current= (CurrentInput.read()*330)/(50*0.025); + actual_data.BAE_temp_actual = test_current; + eps_pc.printf("\n\r I_B = %f",3.3*CurrentInput.read()/(50*0.025)); +} +void Read_I_D_IN_COMTX() +{ + float test_Dcurrent; + SelectLineb0=1; + SelectLineb1=0; + SelectLineb2=0; + SelectLineb3=0; + wait_ms(1); + test_Dcurrent= (CurrentInput.read()*330)/(50*0.025); + // actual_data.BAE_temp_actual = test_current; + eps_pc.printf("\n\r I_D = %f",3.3*CurrentInput.read()/(50*0.025)); +} + +void Read_V_D_IN_COMTX() +{ + float test_Dvoltage; + SelectLinea0=0; + SelectLinea1=1; + SelectLinea2=1; + SelectLinea3=0; + wait_ms(1); + test_Dvoltage= (VoltageInput.read()*3.3*62)/11; + // actual_data.BAE_temp_actual = test_current; + eps_pc.printf("\n\r V_D = %f",test_Dvoltage); +} \ No newline at end of file