Team Fox / Mbed 2 deprecated BAE_QM_MAR9

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of workinQM_5thJan_azad by Team Fox

Revision:
39:670133e7ffd8
Parent:
33:76f2b8735501
Child:
40:c2538d97e78b
Child:
45:b5bd48ffbb67
Child:
47:d59ba66229ce
diff -r 76f2b8735501 -r 670133e7ffd8 TCTM.cpp
--- a/TCTM.cpp	Mon Jul 04 04:29:59 2016 +0000
+++ b/TCTM.cpp	Tue Jul 05 13:44:15 2016 +0000
@@ -41,6 +41,7 @@
 extern uint8_t ACS_TR_X_PWM;
 extern uint8_t ACS_TR_Y_PWM;
 extern uint8_t ACS_TR_Z_PWM;
+extern uint8_t B_SCZ_ANGLE;
 extern uint8_t alarmmode;
 extern uint8_t controlmode_mms;
 extern uint8_t invjm_mms[9];
@@ -83,36 +84,36 @@
 extern uint8_t HTR_ON_DURATION;          //EPS_HTR_OFF timer duration in minutes
 extern uint16_t HTR_CYCLE_PERIOD; 
 
-extern DigitalOut ACS_TR_XY_ENABLE;
-extern DigitalOut ACS_TR_Z_ENABLE;
-extern DigitalOut ACS_TR_XY_OC_FAULT;
-extern DigitalOut ACS_TR_Z_OC_FAULT;
-extern DigitalOut ACS_TR_XY_FAULT;
-extern DigitalOut ACS_TR_Z_FAULT;
-extern DigitalOut ACS_ATS1_OC_FAULT;
-extern DigitalOut ACS_ATS2_OC_FAULT;
+extern DigitalInOut ACS_TR_XY_ENABLE;
+extern DigitalInOut ACS_TR_Z_ENABLE;
+extern DigitalInOut ACS_TR_XY_OC_FAULT;
+extern DigitalInOut ACS_TR_Z_OC_FAULT;
+extern DigitalInOut ACS_TR_XY_FAULT;
+extern DigitalInOut ACS_TR_Z_FAULT;
+extern DigitalInOut ACS_ATS1_OC_FAULT;
+extern DigitalInOut ACS_ATS2_OC_FAULT;
 
-extern DigitalOut ATS1_SW_ENABLE; // enable of att sens2 switch
-extern DigitalOut ATS2_SW_ENABLE; // enable of att sens switch
+extern DigitalInOut ATS1_SW_ENABLE; // enable of att sens2 switch
+extern DigitalInOut ATS2_SW_ENABLE; // enable of att sens switch
 
-extern DigitalOut DRV_Z_EN;
-extern DigitalOut DRV_XY_EN;
-extern DigitalOut TRXY_SW;  //TR XY Switch if any TR_SW error arises then it is same as TR_SW_EN
-extern DigitalOut TRZ_SW;  //TR Z Switch
+extern DigitalInOut DRV_Z_EN;
+extern DigitalInOut DRV_XY_EN;
+extern DigitalInOut TRXY_SW;  //TR XY Switch if any TR_SW error arises then it is same as TR_SW_EN
+extern DigitalInOut TRZ_SW;  //TR Z Switch
 
-extern DigitalOut phase_TR_x;
-extern DigitalOut phase_TR_y;
-extern DigitalOut phase_TR_z;
+extern DigitalInOut phase_TR_x;
+extern DigitalInOut phase_TR_y;
+extern DigitalInOut phase_TR_z;
 
 
 //CDMS
-extern DigitalOut CDMS_RESET; // CDMS RESET
+extern DigitalInOut CDMS_RESET; // CDMS RESET
 extern uint8_t CDMS_SW_STATUS;
-extern DigitalOut CDMS_OC_FAULT;
+extern DigitalInOut CDMS_OC_FAULT;
 
 
 //BCN
-extern DigitalOut BCN_SW;      //Beacon switch
+extern DigitalInOut BCN_SW;      //Beacon switch
 extern uint8_t BCN_TX_STATUS;
 extern uint8_t BCN_FEN;
 extern uint8_t BCN_SPND_TX;
@@ -122,7 +123,7 @@
 extern uint8_t BCN_INIT_STATUS;
 extern uint8_t BCN_FAIL_COUNT;
 extern uint16_t BCN_TX_MAIN_COUNTER;
-extern DigitalOut BCN_TX_OC_FAULT;
+extern DigitalInOut BCN_TX_OC_FAULT;
 extern uint8_t BCN_TMP;
 extern void F_BCN();
 extern void FCTN_BCN_TX_MAIN();
@@ -173,9 +174,9 @@
 extern DigitalOut SelectLineb2;
 extern DigitalOut SelectLineb1;
 extern DigitalOut SelectLineb0;
-extern DigitalOut EPS_CHARGER_FAULT;
-extern DigitalOut EPS_CHARGER_STATUS;
-extern DigitalOut EPS_BATTERY_GAUGE_ALERT;
+extern DigitalInOut EPS_CHARGER_FAULT;
+extern DigitalInOut EPS_CHARGER_STATUS;
+extern DigitalInOut EPS_BATTERY_GAUGE_ALERT;
 
 extern void F_EPS();
 extern AnalogIn CurrentInput;
@@ -465,10 +466,10 @@
                                                                 //assigned it to counter HTR_CYCLE_COUNTER
                                                                 
                                                                 //assign it b_scz_angle
-                                                                telemetry[66] = 0x00; 
-                                                                telemetry[66] = (telemetry[65]<<1) | alarmmode;
-                                                                telemetry[66] = (telemetry[65]<<1) | controlmode_mms;
-                                                                telemetry[66] = (telemetry[65]<<2);
+                                                                telemetry[66] = B_SCZ_ANGLE>>4; 
+                                                                telemetry[66] = (telemetry[66]<<1) | alarmmode;
+                                                                telemetry[66] = (telemetry[66]<<1) | controlmode_mms;
+                                                                telemetry[66] = (telemetry[66]<<2);
                                                                 //2 bit spare
                                                                 
                                                                 for(int i=0;i<9;i++)
@@ -847,11 +848,24 @@
                                                                     }
                                         
                                                                 // Control algo commissioning
-                                                                FCTN_CONVERT_FLOAT(moment_comm[0],&telemetry[4]); //telemetry[4] - telemetry[7]
-                                                                FCTN_CONVERT_FLOAT(moment_comm[1],&telemetry[8]); //telemetry[8] - telemetry[11]
-                                                                FCTN_CONVERT_FLOAT(moment_comm[2],&telemetry[12]); //telemetry[12] - telemetry[15]
+                                                                uint16_t moment_ret;
+                                                                telemetry[3] = 0x00;
+                                                                telemetry[4] = ACS_STATUS;
+                                                                moment_ret = float_to_uint16(-2.2,2.2,moment_comm[0]);
+                                                                telemetry[5] = (uint8_t)(moment_ret>>8);
+                                                                telemetry[6] = (uint8_t)moment_ret;
+                                                                moment_ret = float_to_uint16(-2.2,2.2,moment_comm[0]);
+                                                                telemetry[7] = (uint8_t)(moment_ret>>8);
+                                                                telemetry[8] = (uint8_t)moment_ret;
+                                                                moment_ret = float_to_uint16(-2.2,2.2,moment_comm[2]);
+                                                                telemetry[9] = (uint8_t)(moment_ret>>8);
+                                                                telemetry[10] = (uint8_t)moment_ret;
+                                                                
+                                                                //FCTN_CONVERT_FLOAT(moment_comm[0],&telemetry[4]); //telemetry[4] - telemetry[7]
+                                                                //FCTN_CONVERT_FLOAT(moment_comm[1],&telemetry[8]); //telemetry[8] - telemetry[11]
+                                                                //FCTN_CONVERT_FLOAT(moment_comm[2],&telemetry[12]); //telemetry[12] - telemetry[15]
                                                                 // to include commission TR as well
-                                                                for(uint8_t i=16;i<132;i++)
+                                                                for(uint8_t i=11;i<132;i++)
                                                                     {
                                                                         telemetry[i]=0x00;
                                                                     }
@@ -864,22 +878,28 @@
                                                             {
                                                                 printf("HARDWARE_COMSN\r\n");
                                                                 //ACK_L234_telemetry
+                                                                uint8_t SENSOR_NO;
                                                                 
                                                                 int init1=0;
                                                                 int init2=0;
                                                                 int data1=0;
                                                                 int data2=0;
+                                                                
+                                                                uint16_t assign_val;
                                     
                                                                 float PWM_tc[3];
-                                                                PWM_tc[0]=(float(tc[4]))*1;
-                                                                PWM_tc[1]=(float(tc[4]))*1;
-                                                                PWM_tc[2]=(float(tc[4]))*1;
+                                                                PWM_tc[0]=(float(tc[4]))/32768 - 1;
+                                                                PWM_tc[1]=(float(tc[5]))/32768 - 1;
+                                                                PWM_tc[2]=(float(tc[6]))/32768 - 1;
                                                                 
                                                                 DRV_Z_EN = 1;
                                                                 DRV_XY_EN = 1;  
                                                                 telemetry[0]=0xB0;
                                                                 telemetry[1]=tc[0];
                                                                 telemetry[2]=ACK_CODE;
+                                                                telemetry[3] = 0x00;
+                                                                
+                                                                SENSOR_NO = 0;
                                                                 
                                                                 PWM1 = 0;
                                                                 PWM2 = 0;
@@ -919,36 +939,65 @@
                                                                     {
                                                                         ACS_ATS_STATUS = (ACS_ATS_STATUS&0x0F)|0x30;
                                                                     }
+                                                                    
+                                                                    assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[0]);
+                                                                telemetry[5] = (assign_val>>8); 
+                                                                telemetry[6] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[1]);
+                                                                telemetry[7] = (assign_val>>8); 
+                                                                telemetry[8] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[2]);
+                                                                telemetry[9] = (assign_val>>8); 
+                                                                telemetry[10] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-5000,5000,actual_data.AngularSpeed_actual[0]);
+                                                                telemetry[11] = (assign_val>>8); 
+                                                                telemetry[12] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-5000,5000,actual_data.AngularSpeed_actual[1]);
+                                                                telemetry[13] = (assign_val>>8); 
+                                                                telemetry[14] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-5000,5000,actual_data.AngularSpeed_actual[2]);
+                                                                telemetry[15] = (assign_val>>8); 
+                                                                telemetry[16] = assign_val;
+                                                                
                                                                 init2 = SENSOR_INIT();
                                                                 if( init2 == 1)
                                                                     {
                                                                         data2 = SENSOR_DATA_ACQ();
                                                                     }
-                                                                uint8_t ats_data=1;
+                                                                //uint8_t ats_data=1;
                                                                 
                                                                 if(data2 == 0)
                                                                     {
                                                                         ATS2_SW_ENABLE = 1;
                                                                         wait_ms(5);
                                                                         ACS_ATS_STATUS = (ACS_ATS_STATUS&0xF0)|0x0C;
+                                                                        SENSOR_NO = 0;
                                                                         if(data1 == 2)
                                                                             {
                                                                                 ATS1_SW_ENABLE = 0;
                                                                                 wait_ms(5);
                                                                                 ACS_ATS_STATUS = (ACS_ATS_STATUS&0xF0)|0x06;
+                                                                                SENSOR_NO = 1;
                                                                             }
                                                                         else if(data1 == 3)
                                                                             {
                                                                                 ATS1_SW_ENABLE = 0;
                                                                                 wait_ms(5);
                                                                                 ACS_ATS_STATUS = (ACS_ATS_STATUS&0xF0)|0x07;
+                                                                                SENSOR_NO = 1;
                                                                             }
                                                                         else if(data1 == 1)
                                                                             {
                                                                                 ATS1_SW_ENABLE = 0;
                                                                                 wait_ms(5);
                                                                                 ACS_ATS_STATUS = (ACS_ATS_STATUS&0xF0)|0x05;
-                                                                                ats_data = 0;
+                                                                                SENSOR_NO = 0;
+                                                            
                                                                             }
                                                                     
                                                                     }
@@ -962,6 +1011,7 @@
                                                                                 wait_ms(5);
                                                                                 ACS_ATS_STATUS = (ACS_ATS_STATUS&0xF0)|0x01;
                                                                                 ACS_ATS_STATUS = (ACS_ATS_STATUS&0x0F)|0x60;
+                                                                                SENSOR_NO = 1;
                                                                             }
                                                                         else if(data1 == 3)
                                                                             {
@@ -971,11 +1021,13 @@
                                                                                 wait_ms(5);
                                                                                 ACS_ATS_STATUS = (ACS_ATS_STATUS&0xF0)|0x01;
                                                                                 ACS_ATS_STATUS = (ACS_ATS_STATUS&0x0F)|0x70;
+                                                                                SENSOR_NO = 1;
                                                                             }
                                                                         else
                                                                             {
                                                                                 ACS_ATS_STATUS = (ACS_ATS_STATUS&0xF0)|0x05;
-                                                                                ats_data = 0;
+                                                                                SENSOR_NO = 0;
+                                                                                //ats_data = 0;
                                                                             }
                                                                     }
                                                                 
@@ -989,16 +1041,46 @@
                                                                                 wait_ms(5);
                                                                                 ACS_ATS_STATUS = (ACS_ATS_STATUS&0xF0)|0x02;
                                                                                 ACS_ATS_STATUS = (ACS_ATS_STATUS&0x0F)|0x70;
+                                                                                SENSOR_NO = 1;
                                                                             }
                                                                         else
                                                                             {
                                                                                 ACS_ATS_STATUS = (ACS_ATS_STATUS&0xF0)|0x06;
+                                                                                SENSOR_NO = 2;
                                                                             }
                                                                     }
                                                                 else if(data2==3)
                                                                     {
                                                                         ACS_ATS_STATUS = (ACS_ATS_STATUS&0xF0)|0x07;
+                                                                        SENSOR_NO = 2;
                                                                     }
+                                                                    
+                                                                assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[0]);
+                                                                telemetry[17] = (assign_val>>8); 
+                                                                telemetry[18] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[1]);
+                                                                telemetry[19] = (assign_val>>8); 
+                                                                telemetry[20] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[2]);
+                                                                telemetry[21] = (assign_val>>8); 
+                                                                telemetry[22] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-5000,5000,actual_data.AngularSpeed_actual[0]);
+                                                                telemetry[23] = (assign_val>>8); 
+                                                                telemetry[24] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-5000,5000,actual_data.AngularSpeed_actual[1]);
+                                                                telemetry[25] = (assign_val>>8); 
+                                                                telemetry[26] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-5000,5000,actual_data.AngularSpeed_actual[2]);
+                                                                telemetry[27] = (assign_val>>8); 
+                                                                telemetry[28] = assign_val;
+                                                                    
+                                                                telemetry[4] = ACS_ATS_STATUS;
+                                                                
                                                                 
                                                                 SelectLineb3 =0; 
                                                                 SelectLineb2 =1;
@@ -1010,7 +1092,7 @@
                                                                 PWM3 = 0;
                                                                 
                                                                 wait_ms(ACS_DEMAG_TIME_DELAY);
-                                                                if(ats_data == 0)
+                                                                if(SENSOR_NO != 0)
                                                                     SENSOR_DATA_ACQ();
                                                                 actual_data.current_actual[5]=CurrentInput.read();
                                                                 actual_data.current_actual[5]= actual_data.current_actual[5]*3.3/(50*rsens);
@@ -1026,7 +1108,7 @@
                                                                     }
                                                                 
                                                                 //to be edited final tele
-                                                                uint16_t assign_val;
+                                                                //uint16_t assign_val;
                                                                 assign_val = float_to_uint16(-100,100,actual_data.current_actual[5]);//assuming max min values for current to be diss
                                                                 telemetry[29] = (assign_val>>8); 
                                                                 telemetry[30] = assign_val;
@@ -1049,7 +1131,7 @@
                                                                 
                                                                 wait_ms(ACS_DEMAG_TIME_DELAY);
                                                                 
-                                                                if(ats_data == 0)
+                                                                if(SENSOR_NO != 0)
                                                                     SENSOR_DATA_ACQ();
                                                                 actual_data.current_actual[5]=CurrentInput.read();
                                                                 actual_data.current_actual[5]= actual_data.current_actual[5]*3.3/(50*rsens);
@@ -1064,10 +1146,22 @@
                                                                     {
                                                                         actual_data.current_actual[5]=3365.4/log(7.60573*resistance);
                                                                     }
-                                                                FCTN_CONVERT_FLOAT(actual_data.current_actual[5],&telemetry[3 + (4*4)]);
-                                                                FCTN_CONVERT_FLOAT(actual_data.Bvalue_actual[0],&telemetry[3 + (5*4)]);
-                                                                FCTN_CONVERT_FLOAT(actual_data.Bvalue_actual[1],&telemetry[3 + (6*4)]);
-                                                                FCTN_CONVERT_FLOAT(actual_data.Bvalue_actual[2],&telemetry[3 + (7*4)]);
+                                                                
+                                                                assign_val = float_to_uint16(-100,100,actual_data.current_actual[5]);//assuming max min values for current to be diss
+                                                                telemetry[37] = (assign_val>>8); 
+                                                                telemetry[38] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[0]);
+                                                                telemetry[39] = (assign_val>>8); 
+                                                                telemetry[40] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[1]);
+                                                                telemetry[41] = (assign_val>>8); 
+                                                                telemetry[42] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[2]);
+                                                                telemetry[43] = (assign_val>>8); 
+                                                                telemetry[44] = assign_val;
                                                                 
                                                                 PWM1 = 0;
                                                                 PWM2 = 0;
@@ -1075,7 +1169,7 @@
                                                                 
                                                                 wait_ms(ACS_DEMAG_TIME_DELAY);
                                                                 
-                                                                if(ats_data == 0)
+                                                                if(SENSOR_NO != 0)
                                                                     SENSOR_DATA_ACQ();
                                                                 actual_data.current_actual[5]=CurrentInput.read();
                                                                 actual_data.current_actual[5]= actual_data.current_actual[5]*3.3/(50*rsens);
@@ -1089,19 +1183,29 @@
                                                                     {
                                                                     actual_data.current_actual[5]=3365.4/log(7.60573*resistance);
                                                                     }
-                                                                    
-                                                                FCTN_CONVERT_FLOAT(actual_data.current_actual[5],&telemetry[3 + (4*4)]);
-                                                                FCTN_CONVERT_FLOAT(actual_data.Bvalue_actual[0],&telemetry[3 + (5*4)]);
-                                                                FCTN_CONVERT_FLOAT(actual_data.Bvalue_actual[1],&telemetry[3 + (6*4)]);
-                                                                FCTN_CONVERT_FLOAT(actual_data.Bvalue_actual[2],&telemetry[3 + (7*4)]);
+                                                                assign_val = float_to_uint16(-100,100,actual_data.current_actual[5]);//assuming max min values for current to be diss
+                                                                telemetry[45] = (assign_val>>8); 
+                                                                telemetry[46] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[0]);
+                                                                telemetry[47] = (assign_val>>8); 
+                                                                telemetry[48] = assign_val;
                                                                 
+                                                                assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[1]);
+                                                                telemetry[49] = (assign_val>>8); 
+                                                                telemetry[50] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[2]);
+                                                                telemetry[51] = (assign_val>>8); 
+                                                                telemetry[52] = assign_val;
+                                                            
                                                                 PWM1 = 0;
                                                                 PWM2 = 0;
                                                                 PWM3 = 0;
                                                                 
                                                                 wait_ms(ACS_DEMAG_TIME_DELAY);
                                                                 
-                                                                if(ats_data == 0)
+                                                                if(SENSOR_NO != 0)
                                                                     SENSOR_DATA_ACQ();
                                                                 actual_data.current_actual[5]=CurrentInput.read();
                                                                 actual_data.current_actual[5]= actual_data.current_actual[5]*3.3/(50*rsens);
@@ -1115,10 +1219,18 @@
                                                                     {
                                                                         actual_data.current_actual[5]=3365.4/log(7.60573*resistance);
                                                                     }
-                                                                FCTN_CONVERT_FLOAT(actual_data.current_actual[5],&telemetry[3 + (8*4)]);
-                                                                FCTN_CONVERT_FLOAT(actual_data.Bvalue_actual[0],&telemetry[3 + (9*4)]);
-                                                                FCTN_CONVERT_FLOAT(actual_data.Bvalue_actual[1],&telemetry[3 + (10*4)]);
-                                                                FCTN_CONVERT_FLOAT(actual_data.Bvalue_actual[2],&telemetry[3 + (11*4)]);
+                                                                    
+                                                                assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[0]);
+                                                                telemetry[53] = (assign_val>>8); 
+                                                                telemetry[54] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[1]);
+                                                                telemetry[55] = (assign_val>>8); 
+                                                                telemetry[56] = assign_val;
+                                                                
+                                                                assign_val = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[2]);
+                                                                telemetry[57] = (assign_val>>8); 
+                                                                telemetry[58] = assign_val;
                                                                 
                                                                 // for(int i=0; i<12; i++)
                                                                 //   FCTN_CONVERT_FLOAT(actual_data.current_actual[i],&telemetry[16 + (i*4)]);
@@ -1126,7 +1238,10 @@
                                                                 // FCTN_ATS_DATA_ACQ();  //get data
                                     
                                                                 // to include commission TR as well
-                                                                for(uint8_t i=35;i<132;i++)
+                                                                
+                                                                telemetry[58] = SENSOR_NO;
+                                                                
+                                                                for(uint8_t i=60;i<132;i++)
                                                                     {
                                                                         telemetry[i]=0x00;
                                                                     }
@@ -1427,10 +1542,11 @@
                                                                     ATS PIN OR STATUS YET TO BE DECIDED. DECIDED THAT IT IS PIN TC CAN SWITCH ON/OFF THE SENSOR
                                                                 */
                                                                 ATS2_SW_ENABLE = 1;  // making sure we switch off the other
-                                                                ACS_ATS_STATUS = (ACS_ATS_STATUS & 0xF3) | 0x0C ;
-                                                                
+                                                                //ACS_ATS_STATUS = (ACS_ATS_STATUS & 0xF3) | 0x0C ;
+                                                                ACS_ATS_STATUS = (ACS_ATS_STATUS & 0xF0) | 0x0C ;
                                                                 ATS1_SW_ENABLE = 0;
-                                                                ACS_ATS_STATUS = (ACS_ATS_STATUS & 0x3F);
+                                                                //ACS_ATS_STATUS = (ACS_ATS_STATUS & 0x3F);
+                                                                ACS_ATS_STATUS = (ACS_ATS_STATUS & 0x0F)|0x40;
                                                                 telemetry[2]=ACK_CODE;
                                                                 for(uint8_t i=3;i<11;i++)
                                                                     {
@@ -1452,9 +1568,9 @@
                                                                 telemetry[0]=0xB0;
                                                                 telemetry[1]=tc[0];
                                                                 ATS1_SW_ENABLE = 1; //make sure u switch off the other
-                                                                ACS_ATS_STATUS = (ACS_ATS_STATUS & 0x3F) | 0xC0 ;
+                                                                ACS_ATS_STATUS = (ACS_ATS_STATUS & 0x0F) | 0xC0 ;
                                                                 ATS2_SW_ENABLE = 0;
-                                                                ACS_ATS_STATUS = (ACS_ATS_STATUS & 0xF3);
+                                                                ACS_ATS_STATUS = (ACS_ATS_STATUS & 0xF0)|0x04;
                                                                 telemetry[2]=ACK_CODE;
                                                                 for(uint8_t i=3;i<11;i++)
                                                                     {