Team Fox / Mbed 2 deprecated BAE_QM_MAR9

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of workinQM_5thJan_azad by Team Fox

Committer:
azaddevarm
Date:
Sun Jul 03 17:49:37 2016 +0000
Revision:
32:623747b1cecb
Parent:
31:046685b48b71
Updated EPS with flowchart v2.6;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sakthipriya 0:7b4c00e3912f 1 #include "mbed.h"
sakthipriya 0:7b4c00e3912f 2 #include "rtos.h"
sakthipriya 0:7b4c00e3912f 3 #include "pin_config.h"
sakthipriya 0:7b4c00e3912f 4 #include "ACS.h"
sakthipriya 0:7b4c00e3912f 5 #include "EPS.h"
sakthipriya 0:7b4c00e3912f 6 #include "BCN.h"
sakthipriya 0:7b4c00e3912f 7 #include "TCTM.h"
sakthipriya 0:7b4c00e3912f 8
Bragadeesh153 13:fb7facaf308b 9 #define tm_len 135
Bragadeesh153 13:fb7facaf308b 10 #define tc_len 11
azaddevarm 29:bb0d64656ba1 11 //#define batt_heat_low 20
sakthipriya 9:194afacf7449 12
sakthipriya 0:7b4c00e3912f 13 //***************************************************** flags *************************************************************//
sakthipriya 0:7b4c00e3912f 14 uint32_t BAE_STATUS = 0x00000000;
sakthipriya 0:7b4c00e3912f 15 uint32_t BAE_ENABLE = 0xFFFFFFFF;
sakthipriya 0:7b4c00e3912f 16
sakthipriya 5:bb592f3185cc 17 //i2c//
sakthipriya 5:bb592f3185cc 18 char data_send_flag = 'h';
sakthipriya 5:bb592f3185cc 19
sakthipriya 0:7b4c00e3912f 20 //.........acs...............//
sakthipriya 9:194afacf7449 21 /* char ACS_INIT_STATUS = 'q';
sakthipriya 0:7b4c00e3912f 22 char ACS_DATA_ACQ_STATUS = 'q';
sakthipriya 0:7b4c00e3912f 23 char ACS_ATS_STATUS = 'q';
sakthipriya 0:7b4c00e3912f 24 char ACS_MAIN_STATUS = 'q';
sakthipriya 0:7b4c00e3912f 25 char ACS_STATUS = 'q';
sakthipriya 0:7b4c00e3912f 26
sakthipriya 0:7b4c00e3912f 27 char ACS_ATS_ENABLE = 'q';
sakthipriya 0:7b4c00e3912f 28 char ACS_DATA_ACQ_ENABLE = 'q';
sakthipriya 9:194afacf7449 29 char ACS_STATE = 'q';*/
sakthipriya 9:194afacf7449 30
sakthipriya 9:194afacf7449 31 uint8_t ACS_INIT_STATUS = 0;
sakthipriya 9:194afacf7449 32 uint8_t ACS_DATA_ACQ_STATUS = 0;
sakthipriya 9:194afacf7449 33 uint8_t ACS_ATS_STATUS = 0;
sakthipriya 9:194afacf7449 34 uint8_t ACS_MAIN_STATUS = 0;
sakthipriya 9:194afacf7449 35 uint8_t ACS_STATUS = 0;
sakthipriya 9:194afacf7449 36
sakthipriya 9:194afacf7449 37 uint8_t ACS_ATS_ENABLE = 1;
sakthipriya 9:194afacf7449 38 uint8_t ACS_DATA_ACQ_ENABLE = 1;
sakthipriya 9:194afacf7449 39 uint8_t ACS_STATE = 4;
sakthipriya 0:7b4c00e3912f 40
sakthipriya 0:7b4c00e3912f 41 //.....................eps...................//
sakthipriya 0:7b4c00e3912f 42 //eps init
sakthipriya 9:194afacf7449 43 /*char EPS_INIT_STATUS = 'q';
sakthipriya 0:7b4c00e3912f 44 char EPS_BATTERY_GAUGE_STATUS = 'q';
sakthipriya 0:7b4c00e3912f 45 //eps main
sakthipriya 0:7b4c00e3912f 46 char EPS_MAIN_STATUS = 'q';
azaddevarm 30:22b338b027de 47 char EPS_BTRY_TMP_STATUS = 'q';
sakthipriya 0:7b4c00e3912f 48 char EPS_STATUS = 'q';
sakthipriya 0:7b4c00e3912f 49
azaddevarm 29:bb0d64656ba1 50 char EPS_BATTERY_HEATER_ENABLE = 'q';
sakthipriya 9:194afacf7449 51 */
sakthipriya 9:194afacf7449 52
sakthipriya 9:194afacf7449 53 uint8_t EPS_INIT_STATUS = 0;
sakthipriya 9:194afacf7449 54 uint8_t EPS_BATTERY_GAUGE_STATUS = 0;
azaddevarm 28:5f0f2a3f3e8d 55
sakthipriya 9:194afacf7449 56 //eps main
sakthipriya 9:194afacf7449 57 uint8_t EPS_MAIN_STATUS = 0;
azaddevarm 30:22b338b027de 58 uint8_t EPS_BTRY_TMP_STATUS = 0;
sakthipriya 9:194afacf7449 59 uint8_t EPS_STATUS = 7; //invalid status
azaddevarm 30:22b338b027de 60 uint8_t EPS_BTRY_HTR_AUTO = 1;
sakthipriya 9:194afacf7449 61
azaddevarm 29:bb0d64656ba1 62 int EPS_MAIN_COUNTER = 0;
azaddevarm 29:bb0d64656ba1 63
azaddevarm 30:22b338b027de 64 uint8_t EPS_BTRY_HTR = 0;
azaddevarm 30:22b338b027de 65 float EPS_BTRY_TMP_LOW;
azaddevarm 30:22b338b027de 66 float EPS_BTRY_TMP_HIGH;
azaddevarm 32:623747b1cecb 67 float EPS_BTRY_TMP_AVG;
azaddevarm 30:22b338b027de 68 int EPS_BAT_TEMP_DEFAULT = 20;
azaddevarm 30:22b338b027de 69
azaddevarm 30:22b338b027de 70
sakthipriya 0:7b4c00e3912f 71
azaddevarm 28:5f0f2a3f3e8d 72 //eps cdms fault
azaddevarm 28:5f0f2a3f3e8d 73 uint8_t CDMS_SW_STATUS;
azaddevarm 28:5f0f2a3f3e8d 74 bool CDMS_OC_FAULT;
azaddevarm 28:5f0f2a3f3e8d 75 bool CDMS_SW_ENABLE;
azaddevarm 28:5f0f2a3f3e8d 76 int CDMS_FAULT_COUNTER;
azaddevarm 28:5f0f2a3f3e8d 77
azaddevarm 28:5f0f2a3f3e8d 78 //eps hw faults
azaddevarm 28:5f0f2a3f3e8d 79
azaddevarm 28:5f0f2a3f3e8d 80 uint8_t ACS_TR_Z_SW_STATUS;
azaddevarm 28:5f0f2a3f3e8d 81 bool ACS_TR_Z_ENABLE;
azaddevarm 28:5f0f2a3f3e8d 82 bool ACS_TR_Z_OC_FAULT;
azaddevarm 28:5f0f2a3f3e8d 83 bool ACS_TR_Z_FAULT; //Driver IC fault
azaddevarm 28:5f0f2a3f3e8d 84 int ACS_TR_Z_FAULT_COUNTER;
azaddevarm 28:5f0f2a3f3e8d 85
azaddevarm 28:5f0f2a3f3e8d 86 uint8_t ACS_TR_XY_SW_STATUS;
azaddevarm 28:5f0f2a3f3e8d 87 bool ACS_TR_XY_ENABLE;
azaddevarm 28:5f0f2a3f3e8d 88 bool ACS_TR_XY_OC_FAULT;
azaddevarm 28:5f0f2a3f3e8d 89 bool ACS_TR_XY_FAULT; //Driver IC fault
azaddevarm 28:5f0f2a3f3e8d 90 int ACS_TR_XY_FAULT_COUNTER;
azaddevarm 28:5f0f2a3f3e8d 91
azaddevarm 28:5f0f2a3f3e8d 92 uint8_t ACS_ATS1_SW_STATUS;
azaddevarm 28:5f0f2a3f3e8d 93 bool ACS_ATS1_ENABLE;
azaddevarm 28:5f0f2a3f3e8d 94 bool ACS_ATS1_OC_FAULT;
azaddevarm 28:5f0f2a3f3e8d 95 int ACS_ATS1_FAULT_COUNTER;
azaddevarm 28:5f0f2a3f3e8d 96
azaddevarm 28:5f0f2a3f3e8d 97 uint8_t ACS_ATS2_SW_STATUS;
azaddevarm 28:5f0f2a3f3e8d 98 bool ACS_ATS2_ENABLE;
azaddevarm 28:5f0f2a3f3e8d 99 bool ACS_ATS2_OC_FAULT;
azaddevarm 28:5f0f2a3f3e8d 100 int ACS_ATS2_FAULT_COUNTER;
azaddevarm 28:5f0f2a3f3e8d 101
azaddevarm 28:5f0f2a3f3e8d 102 uint8_t BCN_TX_SW_STATUS;
azaddevarm 28:5f0f2a3f3e8d 103 bool BCN_TX_ENABLE;
azaddevarm 28:5f0f2a3f3e8d 104 bool BCN_TX_OC_FAULT;
azaddevarm 28:5f0f2a3f3e8d 105 int BCN_TX_FAULT_COUNTER;
azaddevarm 28:5f0f2a3f3e8d 106
azaddevarm 30:22b338b027de 107
sakthipriya 0:7b4c00e3912f 108 //.......................global variables..................................................................// new hk structure- everything has to changed based on this
sakthipriya 6:036d08b62785 109 uint8_t BAE_data[74];
sakthipriya 6:036d08b62785 110 char BAE_chardata[74];
sakthipriya 0:7b4c00e3912f 111
sakthipriya 0:7b4c00e3912f 112
sakthipriya 0:7b4c00e3912f 113 //*************************************Global declarations************************************************//
sakthipriya 0:7b4c00e3912f 114 const int addr = 0x20; //slave address
sakthipriya 0:7b4c00e3912f 115
sakthipriya 0:7b4c00e3912f 116 Timer t_rfsilence;
sakthipriya 0:7b4c00e3912f 117 Timer t_start;
sakthipriya 7:a46a1dee4497 118 Timer t_tc;
sakthipriya 7:a46a1dee4497 119 Timer t_tm;
sakthipriya 0:7b4c00e3912f 120 Serial pc(USBTX, USBRX);
sakthipriya 0:7b4c00e3912f 121 int power_flag_dummy=2;
sakthipriya 0:7b4c00e3912f 122 float data[6];
sakthipriya 0:7b4c00e3912f 123
sakthipriya 0:7b4c00e3912f 124 extern float moment[3];
sakthipriya 0:7b4c00e3912f 125 extern uint8_t BCN_FEN;
sakthipriya 1:446a959e36ce 126 extern BAE_HK_actual actual_data;
sakthipriya 1:446a959e36ce 127 extern BAE_HK_quant quant_data;
sakthipriya 1:446a959e36ce 128 extern BAE_HK_min_max bae_HK_minmax;
sakthipriya 1:446a959e36ce 129 extern BAE_HK_arch arch_data;
sakthipriya 0:7b4c00e3912f 130
sakthipriya 5:bb592f3185cc 131 int write_ack = 1;
sakthipriya 5:bb592f3185cc 132 int read_ack = 1;
sakthipriya 0:7b4c00e3912f 133 char telecommand[tc_len];
Bragadeesh153 13:fb7facaf308b 134 extern uint8_t telemetry[135];
sakthipriya 5:bb592f3185cc 135
sakthipriya 5:bb592f3185cc 136 bool pf1check = 0;
sakthipriya 5:bb592f3185cc 137 bool pf2check = 0;
sakthipriya 5:bb592f3185cc 138 bool if1check = 0;
lakshya 14:a9588f443f1a 139 bool if2check = 0;
sakthipriya 0:7b4c00e3912f 140
sakthipriya 0:7b4c00e3912f 141 //*****************************************************Assigning pins******************************************************//
sakthipriya 9:194afacf7449 142 DigitalOut ATS1_SW_ENABLE(PTC0); // enable of att sens2 switch
sakthipriya 9:194afacf7449 143 DigitalOut ATS2_SW_ENABLE(PTC16); // enable of att sens switch
sakthipriya 0:7b4c00e3912f 144 InterruptIn irpt_4m_mstr(PIN38); //I2c interrupt from CDMS
sakthipriya 0:7b4c00e3912f 145 DigitalOut irpt_2_mstr(PIN4); //I2C interrupt to CDMS
lakshya 14:a9588f443f1a 146 I2CSlave slave (PIN1,PIN2);///pin1 pin2
azaddevarm 30:22b338b027de 147 DigitalOut BTRY_HTR_ENABLE(BATT_HEAT); //BTRY_HEAT
sakthipriya 0:7b4c00e3912f 148
sakthipriya 9:194afacf7449 149 //ATS1_SW_ENABLE = 0;
sakthipriya 0:7b4c00e3912f 150 PwmOut PWM1(PIN93); //x //Functions used to generate PWM signal
sakthipriya 0:7b4c00e3912f 151 PwmOut PWM2(PIN94); //y
sakthipriya 0:7b4c00e3912f 152 PwmOut PWM3(PIN95); //z //PWM output comes from pins p6
sakthipriya 0:7b4c00e3912f 153
sakthipriya 5:bb592f3185cc 154 //........faults
sakthipriya 5:bb592f3185cc 155 //Polled Faults
sakthipriya 5:bb592f3185cc 156 DigitalIn pf1(PIN5);//Attitude Sensor 1 OC bar fault signal
sakthipriya 5:bb592f3185cc 157 DigitalIn pf2(PIN97);//Attitude Sensor 2 OC bar fault signal
sakthipriya 5:bb592f3185cc 158 DigitalIn pf3(PIN83);//Fault Bar for TRXY driver
sakthipriya 5:bb592f3185cc 159
sakthipriya 5:bb592f3185cc 160 //Interrupt based faults
lakshya 14:a9588f443f1a 161 //InterruptIn ir1(PIN73);//Battery Gauge - Alert Bar Signal
sakthipriya 5:bb592f3185cc 162 InterruptIn ir2(PIN72);//TRXY Driver TR switch Fault
sakthipriya 5:bb592f3185cc 163 InterruptIn ir3(PIN89);//TRZ Driver Fault Bar
sakthipriya 5:bb592f3185cc 164 InterruptIn ir4(PIN91);//TRZ Driver TR switch Fault
sakthipriya 5:bb592f3185cc 165 InterruptIn ir5(PIN79);//CDMS - Switch Fault
sakthipriya 5:bb592f3185cc 166 InterruptIn ir6(PIN80);//Beacon- Switch OC bar
sakthipriya 5:bb592f3185cc 167 InterruptIn ir7(PIN42);//Charger IC - Fault Bar
sakthipriya 5:bb592f3185cc 168
lakshya 14:a9588f443f1a 169
Bragadeesh153 13:fb7facaf308b 170 //DigitalOut TRXY_SW_EN(PIN71); //TR XY Switch
Bragadeesh153 13:fb7facaf308b 171 //DigitalOut DRV_Z_SLP(PIN88); //Sleep pin of driver z
Bragadeesh153 13:fb7facaf308b 172 //DigitalOut TRZ_SW(PIN40); //TR Z Switch
Bragadeesh153 13:fb7facaf308b 173 //DigitalOut CDMS_RESET(PIN7); // CDMS RESET
Bragadeesh153 13:fb7facaf308b 174 //DigitalOut BCN_SW(PIN14); //Beacon switch
Bragadeesh153 13:fb7facaf308b 175 //DigitalOut DRV_XY_SLP(PIN82);
Bragadeesh153 13:fb7facaf308b 176
Bragadeesh153 13:fb7facaf308b 177
Bragadeesh153 13:fb7facaf308b 178 DigitalOut TRXY_SW(PIN71); //TR XY Switch
Bragadeesh153 13:fb7facaf308b 179 DigitalOut DRV_Z_EN(PIN88); //Sleep pin of driver z
sakthipriya 5:bb592f3185cc 180 DigitalOut TRZ_SW(PIN40); //TR Z Switch
sakthipriya 5:bb592f3185cc 181 DigitalOut CDMS_RESET(PIN7); // CDMS RESET
sakthipriya 5:bb592f3185cc 182 DigitalOut BCN_SW(PIN14); //Beacon switch
Bragadeesh153 13:fb7facaf308b 183 DigitalOut DRV_XY_EN(PIN82);
sakthipriya 0:7b4c00e3912f 184
sakthipriya 0:7b4c00e3912f 185 /*****************************************************************Threads USed***********************************************************************************/
sakthipriya 3:07e15677a75c 186
sakthipriya 0:7b4c00e3912f 187 Thread *ptr_t_i2c;
sakthipriya 0:7b4c00e3912f 188
sakthipriya 0:7b4c00e3912f 189 /*********************************************************FCTN HEADERS***********************************************************************************/
sakthipriya 0:7b4c00e3912f 190
sakthipriya 0:7b4c00e3912f 191 void FCTN_ISR_I2C();
sakthipriya 0:7b4c00e3912f 192 void FCTN_TM();
sakthipriya 3:07e15677a75c 193 void F_ACS();
sakthipriya 3:07e15677a75c 194 void F_EPS();
sakthipriya 3:07e15677a75c 195 void F_BCN();
sakthipriya 0:7b4c00e3912f 196
sakthipriya 0:7b4c00e3912f 197 //*******************************************ACS THREAD**************************************************//
sakthipriya 5:bb592f3185cc 198 uint8_t iterP1;
sakthipriya 5:bb592f3185cc 199 uint8_t iterP2;
sakthipriya 5:bb592f3185cc 200 uint8_t iterI1;
sakthipriya 5:bb592f3185cc 201 uint8_t iterI2;
sakthipriya 0:7b4c00e3912f 202
sakthipriya 5:bb592f3185cc 203
sakthipriya 3:07e15677a75c 204 void F_ACS()
sakthipriya 0:7b4c00e3912f 205 {
sakthipriya 8:82250e41da81 206
sakthipriya 9:194afacf7449 207
sakthipriya 8:82250e41da81 208 //...................//
sakthipriya 8:82250e41da81 209
sakthipriya 5:bb592f3185cc 210 if(pf1check == 1)
sakthipriya 5:bb592f3185cc 211 {
sakthipriya 5:bb592f3185cc 212 if(iterP1 >= 3)
sakthipriya 5:bb592f3185cc 213 {
sakthipriya 9:194afacf7449 214 ATS1_SW_ENABLE = 1; // turn off ats1 permanently
sakthipriya 5:bb592f3185cc 215 //FCTN_SWITCH_ATS(0); // switch on ATS2
sakthipriya 5:bb592f3185cc 216 }
sakthipriya 5:bb592f3185cc 217 else
sakthipriya 5:bb592f3185cc 218 {
sakthipriya 9:194afacf7449 219 ATS1_SW_ENABLE = 0;
sakthipriya 5:bb592f3185cc 220 iterP1++;
sakthipriya 5:bb592f3185cc 221 }
sakthipriya 9:194afacf7449 222 pf1check = 0;
sakthipriya 5:bb592f3185cc 223 }
sakthipriya 5:bb592f3185cc 224 if(pf2check == 1)
sakthipriya 5:bb592f3185cc 225 {
sakthipriya 5:bb592f3185cc 226 if(iterP1 >= 3)
sakthipriya 5:bb592f3185cc 227 {
sakthipriya 9:194afacf7449 228 ATS2_SW_ENABLE = 1; // turn off ats2 permanently
Bragadeesh153 13:fb7facaf308b 229 ACS_DATA_ACQ_ENABLE = 0;
Bragadeesh153 13:fb7facaf308b 230 ACS_STATE = 2 ; // check ACS_STATE = ACS_ZAXIS_MOMENT_ONLY
sakthipriya 5:bb592f3185cc 231 }
sakthipriya 5:bb592f3185cc 232 else
sakthipriya 5:bb592f3185cc 233 {
sakthipriya 9:194afacf7449 234 ATS2_SW_ENABLE = 0;
sakthipriya 5:bb592f3185cc 235 iterP2++;
sakthipriya 5:bb592f3185cc 236 }
sakthipriya 9:194afacf7449 237 pf2check = 0;
sakthipriya 5:bb592f3185cc 238 }
sakthipriya 5:bb592f3185cc 239 if(if1check == 1)
sakthipriya 5:bb592f3185cc 240 {
sakthipriya 5:bb592f3185cc 241 if(iterI1 >= 3)
sakthipriya 5:bb592f3185cc 242 {
Bragadeesh153 13:fb7facaf308b 243 TRXY_SW = 0; // turn off TRXY permanently
sakthipriya 5:bb592f3185cc 244 }
sakthipriya 5:bb592f3185cc 245 else
sakthipriya 5:bb592f3185cc 246 {
Bragadeesh153 13:fb7facaf308b 247 TRXY_SW = 1; //switch on TRXY
sakthipriya 5:bb592f3185cc 248 iterI1++;
sakthipriya 5:bb592f3185cc 249 }
sakthipriya 5:bb592f3185cc 250 }
sakthipriya 5:bb592f3185cc 251 if(if2check == 1)
sakthipriya 5:bb592f3185cc 252 {
sakthipriya 5:bb592f3185cc 253 if(iterI2 >= 3)
sakthipriya 5:bb592f3185cc 254 {
sakthipriya 5:bb592f3185cc 255 TRZ_SW = 0; // turn off TRZ permanently
Bragadeesh153 13:fb7facaf308b 256 ACS_STATE = 2 ; // check ACS_STATE = ACS_ZAXIS_MOMENT_ONLY
sakthipriya 5:bb592f3185cc 257 }
sakthipriya 5:bb592f3185cc 258 else
sakthipriya 5:bb592f3185cc 259 {
sakthipriya 5:bb592f3185cc 260 TRZ_SW = 1; //switch on Z
sakthipriya 5:bb592f3185cc 261 iterI2++;
sakthipriya 5:bb592f3185cc 262 }
sakthipriya 5:bb592f3185cc 263 }
sakthipriya 5:bb592f3185cc 264
sakthipriya 6:036d08b62785 265 //float b1[3]={-23.376,-37.56,14.739}, omega1[3]={-1.52,2.746,0.7629}, moment1[3]= {1.0498,-1.0535,1.3246};
sakthipriya 0:7b4c00e3912f 266 //b1[3] = {22, 22,10};
sakthipriya 0:7b4c00e3912f 267 //omega1[3] = {2.1,3.0,1.5};
sakthipriya 9:194afacf7449 268 // ATS1_SW_ENABLE = 0; // att sens2 switch is disabled
sakthipriya 9:194afacf7449 269 // ATS2_SW_ENABLE = 0; // att sens switch is disabled
sakthipriya 0:7b4c00e3912f 270
sakthipriya 3:07e15677a75c 271
sakthipriya 0:7b4c00e3912f 272
sakthipriya 3:07e15677a75c 273 //Thread::signal_wait(0x1);
sakthipriya 9:194afacf7449 274 ACS_MAIN_STATUS = 1; //set ACS_MAIN_STATUS flag
sakthipriya 0:7b4c00e3912f 275 PWM1 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 276 PWM2 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 277 PWM3 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 278 pc.printf("\n\rEntered ACS %f\n",t_start.read());
sakthipriya 0:7b4c00e3912f 279
sakthipriya 9:194afacf7449 280 if(ACS_DATA_ACQ_ENABLE == 1)// check if ACS_DATA_ACQ_ENABLE = 1?
sakthipriya 0:7b4c00e3912f 281 {
Bragadeesh153 13:fb7facaf308b 282 //FLAG();
sakthipriya 0:7b4c00e3912f 283 FCTN_ATS_DATA_ACQ(); //the angular velocity is stored in the first 3 values and magnetic field values in next 3
sakthipriya 0:7b4c00e3912f 284 pc.printf("gyro values\n\r"); //printing the angular velocity and magnetic field values
sakthipriya 0:7b4c00e3912f 285 for(int i=0; i<3; i++)
sakthipriya 0:7b4c00e3912f 286 {
lakshya 15:e09aaaccf134 287 printf("%f\n\r",actual_data.AngularSpeed_actual[i]);
sakthipriya 0:7b4c00e3912f 288 }
sakthipriya 0:7b4c00e3912f 289 pc.printf("mag values\n\r");
sakthipriya 6:036d08b62785 290 for(int i=0; i<3; i++)
sakthipriya 0:7b4c00e3912f 291 {
sakthipriya 6:036d08b62785 292 pc.printf("%f\n\r",actual_data.Bvalue_actual[i]);
sakthipriya 5:bb592f3185cc 293 }
sakthipriya 6:036d08b62785 294 // for(int i=0;i<3;i++)
sakthipriya 6:036d08b62785 295 // {
sakthipriya 6:036d08b62785 296 // omega1[i]= data[i];
sakthipriya 6:036d08b62785 297 // b1[i] = data[i+3];
sakthipriya 6:036d08b62785 298 // }
sakthipriya 0:7b4c00e3912f 299 }//if ACS_DATA_ACQ_ENABLE = 1
sakthipriya 0:7b4c00e3912f 300 else
sakthipriya 0:7b4c00e3912f 301 {
sakthipriya 0:7b4c00e3912f 302 // Z axis actuation is the only final solution,
sakthipriya 0:7b4c00e3912f 303 }
sakthipriya 9:194afacf7449 304 if(ACS_STATE == 0) // check ACS_STATE = ACS_CONTROL_OFF?
sakthipriya 0:7b4c00e3912f 305 {
sakthipriya 0:7b4c00e3912f 306 printf("\n\r acs control off\n");
sakthipriya 0:7b4c00e3912f 307 FLAG();
sakthipriya 9:194afacf7449 308 ACS_STATUS = 0; // set ACS_STATUS = ACS_CONTROL_OFF
sakthipriya 0:7b4c00e3912f 309 PWM1 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 310 PWM2 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 311 PWM3 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 312 }
sakthipriya 0:7b4c00e3912f 313 else
sakthipriya 0:7b4c00e3912f 314 {
sakthipriya 1:446a959e36ce 315 if(actual_data.power_mode>1)
sakthipriya 0:7b4c00e3912f 316
sakthipriya 0:7b4c00e3912f 317 {
sakthipriya 9:194afacf7449 318 if(ACS_STATE == 2) // check ACS_STATE = ACS_ZAXIS_MOMENT_ONLY
sakthipriya 0:7b4c00e3912f 319 {
sakthipriya 0:7b4c00e3912f 320 FLAG();
sakthipriya 0:7b4c00e3912f 321 printf("\n\r z axis moment only\n");
sakthipriya 9:194afacf7449 322 ACS_STATUS = 2; // set ACS_STATUS = ACS_ZAXIS_MOMENT_ONLY
sakthipriya 0:7b4c00e3912f 323 // FCTN_ACS_CNTRLALGO(b1, omega1);
sakthipriya 0:7b4c00e3912f 324 moment[0] = 0;
sakthipriya 0:7b4c00e3912f 325 moment[1] = 0;
sakthipriya 0:7b4c00e3912f 326 moment[2] =1.3;// is a dummy value
sakthipriya 0:7b4c00e3912f 327 FCTN_ACS_GENPWM_MAIN(moment) ;
sakthipriya 0:7b4c00e3912f 328 }
sakthipriya 0:7b4c00e3912f 329 else
sakthipriya 0:7b4c00e3912f 330 {
sakthipriya 9:194afacf7449 331 if(ACS_STATE == 3) // check ACS_STATE = ACS_DATA_ACQ_FAILURE
sakthipriya 0:7b4c00e3912f 332 {
sakthipriya 0:7b4c00e3912f 333 FLAG();
sakthipriya 0:7b4c00e3912f 334 printf("\n\r acs data failure ");
sakthipriya 9:194afacf7449 335 ACS_STATUS = 3; // set ACS_STATUS = ACS_DATA_ACQ_FAILURE
sakthipriya 0:7b4c00e3912f 336 PWM1 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 337 PWM2 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 338 PWM3 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 339 }
sakthipriya 0:7b4c00e3912f 340 else
sakthipriya 0:7b4c00e3912f 341 {
sakthipriya 9:194afacf7449 342 if(ACS_STATE == 4) // check ACS_STATE = ACS_NOMINAL_ONLY
sakthipriya 0:7b4c00e3912f 343 {
sakthipriya 0:7b4c00e3912f 344 FLAG();
sakthipriya 0:7b4c00e3912f 345 printf("\n\r nominal");
sakthipriya 9:194afacf7449 346 ACS_STATUS = 4; // set ACS_STATUS = ACS_NOMINAL_ONLY
sakthipriya 6:036d08b62785 347 FCTN_ACS_CNTRLALGO(actual_data.Bvalue_actual,actual_data.AngularSpeed_actual);
sakthipriya 0:7b4c00e3912f 348 printf("\n\r moment values returned by control algo \n");
sakthipriya 0:7b4c00e3912f 349 for(int i=0; i<3; i++)
sakthipriya 0:7b4c00e3912f 350 {
sakthipriya 0:7b4c00e3912f 351 printf("%f\t",moment[i]);
sakthipriya 0:7b4c00e3912f 352 }
sakthipriya 0:7b4c00e3912f 353 FCTN_ACS_GENPWM_MAIN(moment) ;
sakthipriya 0:7b4c00e3912f 354 }
sakthipriya 0:7b4c00e3912f 355 else
sakthipriya 0:7b4c00e3912f 356 {
sakthipriya 9:194afacf7449 357 if(ACS_STATE == 5) // check ACS_STATE = ACS_AUTO_CONTROL
sakthipriya 0:7b4c00e3912f 358 {
sakthipriya 0:7b4c00e3912f 359 FLAG();
sakthipriya 0:7b4c00e3912f 360 printf("\n\r auto control");
sakthipriya 9:194afacf7449 361 ACS_STATUS = 5; // set ACS_STATUS = ACS_AUTO_CONTROL
sakthipriya 0:7b4c00e3912f 362 //FCTN_ACS_AUTOCTRL_LOGIC // gotta include this code
sakthipriya 0:7b4c00e3912f 363 }
sakthipriya 0:7b4c00e3912f 364 else
sakthipriya 0:7b4c00e3912f 365 {
sakthipriya 9:194afacf7449 366 if(ACS_STATE == 6) // check ACS_STATE = ACS_DETUMBLING_ONLY
sakthipriya 0:7b4c00e3912f 367 {
sakthipriya 0:7b4c00e3912f 368 FLAG();
sakthipriya 0:7b4c00e3912f 369 printf("\n\r Entered detumbling \n");
sakthipriya 9:194afacf7449 370 ACS_STATUS = 6; // set ACS_STATUS = ACS_DETUMBLING_ONLY
sakthipriya 6:036d08b62785 371 FCTN_ACS_CNTRLALGO(actual_data.Bvalue_actual,actual_data.AngularSpeed_actual); // detumbling code has to be included
sakthipriya 0:7b4c00e3912f 372 FCTN_ACS_GENPWM_MAIN(moment) ;
sakthipriya 0:7b4c00e3912f 373 }
sakthipriya 0:7b4c00e3912f 374 else
sakthipriya 0:7b4c00e3912f 375 {
sakthipriya 0:7b4c00e3912f 376 FLAG();
sakthipriya 0:7b4c00e3912f 377 printf("\n\r invalid state");
sakthipriya 9:194afacf7449 378 ACS_STATUS = 7 ; // set ACS_STATUS = INVALID STATE
sakthipriya 0:7b4c00e3912f 379 PWM1 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 380 PWM2 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 381 PWM3 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 382 }//else of invalid
sakthipriya 0:7b4c00e3912f 383 }//else of autocontrol
sakthipriya 0:7b4c00e3912f 384 }//else of nominal
sakthipriya 0:7b4c00e3912f 385 }//else of data acg failure
sakthipriya 0:7b4c00e3912f 386
sakthipriya 0:7b4c00e3912f 387 }//else fo z axis moment only
sakthipriya 0:7b4c00e3912f 388 }//if power >2
sakthipriya 0:7b4c00e3912f 389 else
sakthipriya 0:7b4c00e3912f 390 {
sakthipriya 0:7b4c00e3912f 391 FLAG();
sakthipriya 0:7b4c00e3912f 392 printf("\n\r low power");
sakthipriya 9:194afacf7449 393 ACS_STATUS = 1; // set ACS_STATUS = ACS_LOW_POWER
sakthipriya 0:7b4c00e3912f 394 PWM1 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 395 PWM2 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 396 PWM3 = 0; //clear pwm pins
sakthipriya 0:7b4c00e3912f 397 }
sakthipriya 0:7b4c00e3912f 398 } //else for acs control off
sakthipriya 9:194afacf7449 399 ACS_MAIN_STATUS = 0; //clear ACS_MAIN_STATUS flag
sakthipriya 3:07e15677a75c 400
sakthipriya 0:7b4c00e3912f 401 }
sakthipriya 0:7b4c00e3912f 402 //***************************************************EPS THREAD***********************************************//
sakthipriya 0:7b4c00e3912f 403
sakthipriya 3:07e15677a75c 404 void F_EPS()
sakthipriya 0:7b4c00e3912f 405 {
azaddevarm 30:22b338b027de 406 float eps_btry_temp;
azaddevarm 32:623747b1cecb 407 pc.printf("\n\rEntered EPS %f\n\r",t_start.read());
azaddevarm 30:22b338b027de 408 EPS_MAIN_STATUS = 1; // Set EPS main status
azaddevarm 30:22b338b027de 409 EPS_MAIN_COUNTER++;
azaddevarm 30:22b338b027de 410 FCTN_BATT_TEMP_SENSOR_MAIN(actual_data.Batt_temp_actual);
azaddevarm 32:623747b1cecb 411 pc.printf("Battery temperature %f %f\n\r" ,actual_data.Batt_temp_actual[0], actual_data.Batt_temp_actual[1]);
azaddevarm 32:623747b1cecb 412 EPS_BTRY_TMP_AVG = ( actual_data.Batt_temp_actual[0] + actual_data.Batt_temp_actual[1] )/2;
azaddevarm 30:22b338b027de 413 if(abs(actual_data.Batt_temp_actual[0] - actual_data.Batt_temp_actual[1]) > 10)
azaddevarm 30:22b338b027de 414 {
azaddevarm 30:22b338b027de 415 EPS_BTRY_TMP_STATUS = 0; //clear EPS_BTRY_TMP_STATUS
azaddevarm 30:22b338b027de 416 eps_btry_temp = (float) EPS_BAT_TEMP_DEFAULT;
azaddevarm 30:22b338b027de 417 }
azaddevarm 30:22b338b027de 418 else
azaddevarm 30:22b338b027de 419 {
azaddevarm 30:22b338b027de 420 EPS_BTRY_TMP_STATUS = 1; //set EPS_BTRY_TMP_STATUS
azaddevarm 32:623747b1cecb 421 eps_btry_temp = EPS_BTRY_TMP_AVG;
azaddevarm 30:22b338b027de 422 }
azaddevarm 30:22b338b027de 423
azaddevarm 30:22b338b027de 424 if(EPS_BTRY_HTR_AUTO == 0)
azaddevarm 30:22b338b027de 425 EPS_STATUS = 1; //EPS_BATTERY_HEATER_DISABLED
azaddevarm 30:22b338b027de 426 else if( EPS_BTRY_TMP_STATUS == 0 )
azaddevarm 30:22b338b027de 427 {
azaddevarm 30:22b338b027de 428 BTRY_HTR_ENABLE = 0;
azaddevarm 30:22b338b027de 429 EPS_BTRY_HTR = 0;
azaddevarm 30:22b338b027de 430 EPS_STATUS = 0; //Set EPS_ERR_BATTERY_TEMP
azaddevarm 30:22b338b027de 431 }
azaddevarm 30:22b338b027de 432 else
azaddevarm 30:22b338b027de 433 {
azaddevarm 30:22b338b027de 434 if( EPS_BTRY_HTR == 1 && eps_btry_temp >= EPS_BTRY_TMP_HIGH )
azaddevarm 30:22b338b027de 435 {
azaddevarm 30:22b338b027de 436 BTRY_HTR_ENABLE = 0;
azaddevarm 30:22b338b027de 437 EPS_BTRY_HTR = 0;
azaddevarm 30:22b338b027de 438 EPS_STATUS = 4; //Set EPS_BATTERY_HEATER_OFF
azaddevarm 30:22b338b027de 439 }
azaddevarm 30:22b338b027de 440 else if( EPS_BTRY_HTR == 0 && eps_btry_temp < EPS_BTRY_TMP_LOW )
azaddevarm 30:22b338b027de 441 {
azaddevarm 30:22b338b027de 442 BTRY_HTR_ENABLE = 1;
azaddevarm 30:22b338b027de 443 EPS_BTRY_HTR = 1;
azaddevarm 30:22b338b027de 444 EPS_STATUS = 5; //Set EPS_BATTERY_HEATER_ON
azaddevarm 30:22b338b027de 445 }
azaddevarm 30:22b338b027de 446 }
azaddevarm 30:22b338b027de 447
azaddevarm 30:22b338b027de 448 unsigned short statusreg = read(REG_STATUS);
azaddevarm 30:22b338b027de 449 if( EPS_BATTERY_GAUGE_STATUS == 0 ) reset();
azaddevarm 29:bb0d64656ba1 450 if( read(REG_STATUS) & 0x0100 == 0x0100 ) //checking if Reset Indicator bit is set
azaddevarm 32:623747b1cecb 451 {
azaddevarm 32:623747b1cecb 452 printf("REG_STATUS = %d\r\n",read(REG_STATUS));
azaddevarm 29:bb0d64656ba1 453 FCTN_BATTERYGAUGE_INIT();
azaddevarm 32:623747b1cecb 454 }
azaddevarm 30:22b338b027de 455 int BTG_MAIN_FLAG = FCTN_BATTERYGAUGE_MAIN(actual_data.Batt_gauge_actual, eps_btry_temp);
azaddevarm 30:22b338b027de 456 if( BTG_MAIN_FLAG == 0 ) //Data not received
azaddevarm 29:bb0d64656ba1 457 {
azaddevarm 29:bb0d64656ba1 458 actual_data.power_mode = 1;
azaddevarm 29:bb0d64656ba1 459 EPS_BATTERY_GAUGE_STATUS = 0; //clear EPS_BATTERY_GAUGE_STATUS
azaddevarm 29:bb0d64656ba1 460 }
azaddevarm 30:22b338b027de 461 else
azaddevarm 29:bb0d64656ba1 462 {
azaddevarm 29:bb0d64656ba1 463 FCTN_EPS_POWERMODE(actual_data.Batt_gauge_actual[1]); //updating power level
azaddevarm 29:bb0d64656ba1 464 EPS_BATTERY_GAUGE_STATUS = 1; //set EPS_BATTERY_GAUGE_STATUS
azaddevarm 29:bb0d64656ba1 465 }
azaddevarm 30:22b338b027de 466
sakthipriya 3:07e15677a75c 467 FCTN_HK_MAIN();
sakthipriya 6:036d08b62785 468 // printf("\n\r here");
azaddevarm 29:bb0d64656ba1 469 FCTN_EPS_HANDLE_HW_FAULTS();
azaddevarm 29:bb0d64656ba1 470 FCTN_EPS_HANDLE_CDMS_FAULT();
sakthipriya 5:bb592f3185cc 471 FCTN_APPEND_HKDATA();
sakthipriya 5:bb592f3185cc 472 minMaxHkData();
sakthipriya 6:036d08b62785 473 //printf("\n\r here");
sakthipriya 9:194afacf7449 474 EPS_MAIN_STATUS = 0; // clear EPS main status
sakthipriya 3:07e15677a75c 475
sakthipriya 0:7b4c00e3912f 476 }
sakthipriya 0:7b4c00e3912f 477
sakthipriya 0:7b4c00e3912f 478 //**************************************************BCN THREAD*******************************************************************//
sakthipriya 0:7b4c00e3912f 479
sakthipriya 3:07e15677a75c 480 void F_BCN()
sakthipriya 0:7b4c00e3912f 481 {
sakthipriya 3:07e15677a75c 482
sakthipriya 0:7b4c00e3912f 483 pc.printf("\n\rEntered BCN %f\n",t_start.read());
sakthipriya 0:7b4c00e3912f 484
Bragadeesh153 12:af1d7e18b868 485 FCTN_BCN_TX_MAIN();
sakthipriya 0:7b4c00e3912f 486
sakthipriya 0:7b4c00e3912f 487 }
sakthipriya 0:7b4c00e3912f 488
sakthipriya 0:7b4c00e3912f 489 //**************************************************TCTM THREAD*******************************************************************//
sakthipriya 0:7b4c00e3912f 490
sakthipriya 0:7b4c00e3912f 491 void T_TC(void const * args)
sakthipriya 0:7b4c00e3912f 492 {
sakthipriya 0:7b4c00e3912f 493 while(1)
sakthipriya 0:7b4c00e3912f 494 {
sakthipriya 0:7b4c00e3912f 495 Thread::signal_wait(0x4);
lakshya 15:e09aaaccf134 496 wait_us(200);
lakshya 15:e09aaaccf134 497 //printf("\n\rreached\n"); // can be between 38 to 15700
sakthipriya 0:7b4c00e3912f 498 if( slave.receive() == 0)
lakshya 15:e09aaaccf134 499 {slave.stop();
lakshya 15:e09aaaccf134 500 //printf("\n\rnot send\n");
lakshya 15:e09aaaccf134 501 }
sakthipriya 0:7b4c00e3912f 502 else if( slave.receive() == 1) // slave writes to master
sakthipriya 0:7b4c00e3912f 503 {
sakthipriya 5:bb592f3185cc 504 if(data_send_flag == 'h')
sakthipriya 6:036d08b62785 505 {
sakthipriya 6:036d08b62785 506 //FCTN_APPEND_HKDATA();
sakthipriya 6:036d08b62785 507 // pc.printf("\n\r here");
sakthipriya 6:036d08b62785 508 write_ack=slave.write(BAE_chardata,74);
Bragadeesh153 13:fb7facaf308b 509 if(write_ack==0)
lakshya 15:e09aaaccf134 510 {irpt_2_mstr = 0;
lakshya 15:e09aaaccf134 511 printf("\n\rgot interrupt\n");
lakshya 15:e09aaaccf134 512 }
sakthipriya 6:036d08b62785 513 }
sakthipriya 5:bb592f3185cc 514 else if(data_send_flag == 't')
sakthipriya 5:bb592f3185cc 515 {
Bragadeesh153 13:fb7facaf308b 516 write_ack=slave.write((char*)telemetry,tm_len);
sakthipriya 5:bb592f3185cc 517 data_send_flag = 'h';
Bragadeesh153 13:fb7facaf308b 518 if(write_ack==0)
Bragadeesh153 13:fb7facaf308b 519 irpt_2_mstr = 0;
sakthipriya 5:bb592f3185cc 520 }
sakthipriya 0:7b4c00e3912f 521 }
sakthipriya 0:7b4c00e3912f 522 else if( slave.receive()==3 || slave.receive()==2) // slave read
sakthipriya 0:7b4c00e3912f 523 {
sakthipriya 5:bb592f3185cc 524 read_ack=slave.read(telecommand,tc_len);
sakthipriya 7:a46a1dee4497 525 t_tc.start();
sakthipriya 6:036d08b62785 526 //pc.printf("\n\rTELECOMMAND received from CDMS is %s \n",telecommand);
sakthipriya 7:a46a1dee4497 527 pc.printf("\n\r Executing Telecommand \n");
sakthipriya 3:07e15677a75c 528 // FCTN_TC_DECODE((uint8_t*) telecommand);
sakthipriya 7:a46a1dee4497 529
Bragadeesh153 13:fb7facaf308b 530 FCTN_BAE_TM_TC((uint8_t*) telecommand);
Bragadeesh153 13:fb7facaf308b 531 //telemetry = (char*)temp;
sakthipriya 7:a46a1dee4497 532
sakthipriya 5:bb592f3185cc 533 FCTN_TM();
sakthipriya 7:a46a1dee4497 534 t_tc.stop();
sakthipriya 7:a46a1dee4497 535 printf("\n\r time taken %d",t_tc.read_us());
sakthipriya 7:a46a1dee4497 536 t_tc.reset();
sakthipriya 3:07e15677a75c 537 // for(int i = 0; i<134; i++)
sakthipriya 3:07e15677a75c 538 //pc.printf("%c", telemetry[i]);
sakthipriya 0:7b4c00e3912f 539 }
sakthipriya 0:7b4c00e3912f 540
sakthipriya 6:036d08b62785 541
sakthipriya 0:7b4c00e3912f 542 }
sakthipriya 0:7b4c00e3912f 543 }
sakthipriya 0:7b4c00e3912f 544
sakthipriya 0:7b4c00e3912f 545 void FCTN_TM()
sakthipriya 0:7b4c00e3912f 546 {
sakthipriya 4:39a4ae8c7ecd 547 //irpt_2_mstr = 0;
sakthipriya 5:bb592f3185cc 548 data_send_flag = 't';
sakthipriya 0:7b4c00e3912f 549 pc.printf("\n\r Telemetry Generation \n");
sakthipriya 0:7b4c00e3912f 550 irpt_2_mstr = 1;
sakthipriya 0:7b4c00e3912f 551 }
sakthipriya 0:7b4c00e3912f 552
sakthipriya 0:7b4c00e3912f 553
sakthipriya 0:7b4c00e3912f 554 //******************************************************* I2C *******************************************************************//
sakthipriya 0:7b4c00e3912f 555
sakthipriya 0:7b4c00e3912f 556 void FCTN_I2C_ISR()
sakthipriya 0:7b4c00e3912f 557 {
sakthipriya 0:7b4c00e3912f 558 ptr_t_i2c->signal_set(0x4);
sakthipriya 0:7b4c00e3912f 559 }
sakthipriya 0:7b4c00e3912f 560
sakthipriya 0:7b4c00e3912f 561
sakthipriya 5:bb592f3185cc 562 //***********************************************************FAULTS***************************************************************//
sakthipriya 5:bb592f3185cc 563 /*void ir1clear()
sakthipriya 5:bb592f3185cc 564 {
sakthipriya 5:bb592f3185cc 565 actual_data.faultIr_status |= 0x01; // alert
sakthipriya 5:bb592f3185cc 566
sakthipriya 5:bb592f3185cc 567 }*/
sakthipriya 5:bb592f3185cc 568
sakthipriya 5:bb592f3185cc 569
sakthipriya 5:bb592f3185cc 570
sakthipriya 5:bb592f3185cc 571 void ir2clear()
sakthipriya 5:bb592f3185cc 572 {
sakthipriya 5:bb592f3185cc 573 actual_data.faultIr_status |= 0x02;
Bragadeesh153 13:fb7facaf308b 574 TRXY_SW = 0; // Switch off TR XY
sakthipriya 5:bb592f3185cc 575 if1check = 1;
sakthipriya 5:bb592f3185cc 576 }
sakthipriya 5:bb592f3185cc 577
sakthipriya 5:bb592f3185cc 578 void ir3clear()
sakthipriya 5:bb592f3185cc 579 {
sakthipriya 5:bb592f3185cc 580 actual_data.faultIr_status |= 0x04;
Bragadeesh153 13:fb7facaf308b 581 DRV_Z_EN = 0;
sakthipriya 5:bb592f3185cc 582 wait_us(1);
Bragadeesh153 13:fb7facaf308b 583 DRV_Z_EN = 1;
sakthipriya 5:bb592f3185cc 584
sakthipriya 5:bb592f3185cc 585 }
sakthipriya 5:bb592f3185cc 586
sakthipriya 5:bb592f3185cc 587 void ir4clear()
sakthipriya 5:bb592f3185cc 588 {
sakthipriya 5:bb592f3185cc 589 if2check = 1;
sakthipriya 5:bb592f3185cc 590 actual_data.faultIr_status |= 0x08;
sakthipriya 5:bb592f3185cc 591 TRZ_SW = 0;
sakthipriya 5:bb592f3185cc 592 }
sakthipriya 5:bb592f3185cc 593
sakthipriya 5:bb592f3185cc 594 void ir5clear()
sakthipriya 5:bb592f3185cc 595 {
sakthipriya 5:bb592f3185cc 596 actual_data.faultIr_status |= 0x10;
sakthipriya 5:bb592f3185cc 597 CDMS_RESET = 0;
sakthipriya 5:bb592f3185cc 598 wait_us(1);
sakthipriya 5:bb592f3185cc 599 CDMS_RESET = 1;
sakthipriya 5:bb592f3185cc 600 }
sakthipriya 5:bb592f3185cc 601
sakthipriya 5:bb592f3185cc 602 void ir6clear()
sakthipriya 5:bb592f3185cc 603 {
sakthipriya 5:bb592f3185cc 604 actual_data.faultIr_status |= 0x20;
sakthipriya 5:bb592f3185cc 605 BCN_SW = 0;
sakthipriya 5:bb592f3185cc 606 wait_us(1);
sakthipriya 5:bb592f3185cc 607 BCN_SW = 1;
sakthipriya 5:bb592f3185cc 608 }
sakthipriya 5:bb592f3185cc 609
sakthipriya 5:bb592f3185cc 610 void ir7clear()
sakthipriya 5:bb592f3185cc 611 {
sakthipriya 5:bb592f3185cc 612 actual_data.faultIr_status |= 0x40;
sakthipriya 5:bb592f3185cc 613 }
sakthipriya 5:bb592f3185cc 614 uint8_t iter2=0,iter4 = 0;
sakthipriya 5:bb592f3185cc 615
sakthipriya 5:bb592f3185cc 616
sakthipriya 5:bb592f3185cc 617
sakthipriya 5:bb592f3185cc 618 void pollfault()
sakthipriya 5:bb592f3185cc 619 {
sakthipriya 5:bb592f3185cc 620
sakthipriya 5:bb592f3185cc 621
sakthipriya 5:bb592f3185cc 622
sakthipriya 5:bb592f3185cc 623 if (pf1==0) // OC_ATS1
sakthipriya 5:bb592f3185cc 624 {
sakthipriya 5:bb592f3185cc 625 pf1check=1;
sakthipriya 5:bb592f3185cc 626 actual_data.faultPoll_status |=0x01 ;
sakthipriya 9:194afacf7449 627 ATS1_SW_ENABLE = 1; // turn off ats1 // to be turned on next cycle in ACS
sakthipriya 5:bb592f3185cc 628 }
sakthipriya 5:bb592f3185cc 629 else actual_data.faultPoll_status &= 0xFE;
sakthipriya 5:bb592f3185cc 630
sakthipriya 5:bb592f3185cc 631 if (pf2==0)
sakthipriya 5:bb592f3185cc 632 {
sakthipriya 5:bb592f3185cc 633 pf2check=1;
sakthipriya 5:bb592f3185cc 634 actual_data.faultPoll_status |=0x02 ;
sakthipriya 9:194afacf7449 635 ATS2_SW_ENABLE = 1; // turn off ats2 // turn on in ACS
sakthipriya 5:bb592f3185cc 636 }
sakthipriya 5:bb592f3185cc 637 else actual_data.faultPoll_status &= 0xFD;
sakthipriya 5:bb592f3185cc 638
sakthipriya 5:bb592f3185cc 639 if (pf3==0)
sakthipriya 5:bb592f3185cc 640 { actual_data.faultPoll_status |=0x04 ;
Bragadeesh153 13:fb7facaf308b 641 DRV_XY_EN = 0;
sakthipriya 5:bb592f3185cc 642 wait_us(1);
Bragadeesh153 13:fb7facaf308b 643 DRV_XY_EN = 1;
sakthipriya 5:bb592f3185cc 644 }
sakthipriya 5:bb592f3185cc 645 else actual_data.faultPoll_status &= 0xFB;
sakthipriya 5:bb592f3185cc 646
sakthipriya 5:bb592f3185cc 647
sakthipriya 5:bb592f3185cc 648
sakthipriya 5:bb592f3185cc 649
sakthipriya 5:bb592f3185cc 650 /*if (ir1==1)
sakthipriya 5:bb592f3185cc 651 {
sakthipriya 5:bb592f3185cc 652 actual_data.faultIr_status &=0xFE;
sakthipriya 5:bb592f3185cc 653 }*/
lakshya 14:a9588f443f1a 654
sakthipriya 5:bb592f3185cc 655 if (ir2==1)
sakthipriya 5:bb592f3185cc 656 {
sakthipriya 5:bb592f3185cc 657 actual_data.faultIr_status &=0xFD;
sakthipriya 5:bb592f3185cc 658 }
sakthipriya 5:bb592f3185cc 659 if (ir3==1)
sakthipriya 5:bb592f3185cc 660 {
sakthipriya 5:bb592f3185cc 661 actual_data.faultIr_status &=0xFB;
sakthipriya 5:bb592f3185cc 662 }
sakthipriya 5:bb592f3185cc 663 if (ir4==1)
sakthipriya 5:bb592f3185cc 664 {
sakthipriya 5:bb592f3185cc 665 actual_data.faultIr_status &=0xF7;
sakthipriya 5:bb592f3185cc 666 }
sakthipriya 5:bb592f3185cc 667 if (ir5==1)
sakthipriya 5:bb592f3185cc 668 {
sakthipriya 5:bb592f3185cc 669 actual_data.faultIr_status &=0xEF;
sakthipriya 5:bb592f3185cc 670 }
sakthipriya 5:bb592f3185cc 671 if (ir6==1)
sakthipriya 5:bb592f3185cc 672 {
sakthipriya 5:bb592f3185cc 673 actual_data.faultIr_status &=0xDF;
sakthipriya 5:bb592f3185cc 674 }if (ir7==1)
sakthipriya 5:bb592f3185cc 675 {
sakthipriya 5:bb592f3185cc 676 actual_data.faultIr_status &=0xBF;
sakthipriya 5:bb592f3185cc 677 }
lakshya 14:a9588f443f1a 678
sakthipriya 5:bb592f3185cc 679
sakthipriya 5:bb592f3185cc 680 }
sakthipriya 5:bb592f3185cc 681
sakthipriya 5:bb592f3185cc 682
sakthipriya 0:7b4c00e3912f 683 //------------------------------------------------------------------------------------------------------------------------------------------------
sakthipriya 0:7b4c00e3912f 684 //SCHEDULER
sakthipriya 0:7b4c00e3912f 685 //------------------------------------------------------------------------------------------------------------------------------------------------
sakthipriya 0:7b4c00e3912f 686 uint8_t schedcount=1;
sakthipriya 0:7b4c00e3912f 687 void T_SC(void const *args)
sakthipriya 0:7b4c00e3912f 688 {
azaddevarm 32:623747b1cecb 689 printf("\n\r in scheduler\r\n");
sakthipriya 0:7b4c00e3912f 690
sakthipriya 0:7b4c00e3912f 691 if(schedcount == 7) //to reset the counter
sakthipriya 0:7b4c00e3912f 692 {
sakthipriya 0:7b4c00e3912f 693 schedcount = 1;
sakthipriya 0:7b4c00e3912f 694 }
sakthipriya 0:7b4c00e3912f 695 if(schedcount%1==0)
azaddevarm 30:22b338b027de 696 { //pc.printf("\nSTATE IS !!!!!! = %x !!\n",ACS_STATE);
azaddevarm 30:22b338b027de 697 //pc.printf("\niterp1 !!!!!! = %x !!\n",iterP1);
azaddevarm 30:22b338b027de 698 //pc.printf("\niteri2 IS !!!!!! = %x !!\n",iterI2);
azaddevarm 30:22b338b027de 699 //F_ACS();
sakthipriya 0:7b4c00e3912f 700 }
sakthipriya 0:7b4c00e3912f 701
sakthipriya 0:7b4c00e3912f 702 if(schedcount%2==0)
sakthipriya 0:7b4c00e3912f 703 {
azaddevarm 30:22b338b027de 704 F_EPS();
sakthipriya 0:7b4c00e3912f 705 }
lakshya 14:a9588f443f1a 706 if(schedcount%1==0)
sakthipriya 0:7b4c00e3912f 707 {
azaddevarm 30:22b338b027de 708 // F_BCN();
sakthipriya 0:7b4c00e3912f 709 }
sakthipriya 0:7b4c00e3912f 710 schedcount++;
sakthipriya 0:7b4c00e3912f 711 printf("\n\r exited scheduler");
sakthipriya 0:7b4c00e3912f 712 }
sakthipriya 0:7b4c00e3912f 713
sakthipriya 0:7b4c00e3912f 714 Timer t_flag;
sakthipriya 0:7b4c00e3912f 715 void FLAG()
sakthipriya 0:7b4c00e3912f 716 {
sakthipriya 0:7b4c00e3912f 717
sakthipriya 0:7b4c00e3912f 718 //.............acs..................//
sakthipriya 9:194afacf7449 719 if(ACS_INIT_STATUS == 1)
sakthipriya 0:7b4c00e3912f 720 BAE_STATUS = BAE_STATUS | 0x00000080; //set ACS_INIT_STATUS flag
sakthipriya 9:194afacf7449 721 else if(ACS_INIT_STATUS == 0)
sakthipriya 0:7b4c00e3912f 722 BAE_STATUS &= 0xFFFFFF7F; //clear ACS_INIT_STATUS flag
sakthipriya 0:7b4c00e3912f 723
sakthipriya 9:194afacf7449 724 if(ACS_DATA_ACQ_STATUS == 1)
sakthipriya 0:7b4c00e3912f 725 BAE_STATUS =BAE_STATUS | 0x00000100; //set ACS_DATA_ACQ_STATUS flag
sakthipriya 9:194afacf7449 726 else if(ACS_DATA_ACQ_STATUS == 0)
sakthipriya 0:7b4c00e3912f 727 BAE_STATUS &= 0xFFFFFEFF; //clear ACS_DATA_ACQ_STATUS flag
sakthipriya 0:7b4c00e3912f 728
sakthipriya 9:194afacf7449 729 if(ACS_ATS_ENABLE == 1)
sakthipriya 0:7b4c00e3912f 730 BAE_ENABLE |= 0x00000004;
sakthipriya 9:194afacf7449 731 else if(ACS_ATS_ENABLE == 0)
sakthipriya 0:7b4c00e3912f 732 BAE_ENABLE = BAE_ENABLE &0xFFFFFFFB | 0x00000004;
sakthipriya 0:7b4c00e3912f 733
sakthipriya 0:7b4c00e3912f 734 if(ACS_DATA_ACQ_STATUS == 'f')
sakthipriya 0:7b4c00e3912f 735 BAE_STATUS |= 0x00000200;
sakthipriya 0:7b4c00e3912f 736
sakthipriya 9:194afacf7449 737 if(ACS_MAIN_STATUS == 1)
sakthipriya 0:7b4c00e3912f 738 BAE_STATUS = (BAE_STATUS | 0x00001000); //set ACS_MAIN_STATUS flag
sakthipriya 9:194afacf7449 739 else if(ACS_MAIN_STATUS == 0)
sakthipriya 0:7b4c00e3912f 740 BAE_STATUS &= 0xFFFFEFFF; //clear ACS_MAIN_STATUS flag
sakthipriya 0:7b4c00e3912f 741
sakthipriya 0:7b4c00e3912f 742 if(ACS_STATUS == '0')
sakthipriya 0:7b4c00e3912f 743 BAE_STATUS = (BAE_STATUS & 0xFFFF1FFF); // set ACS_STATUS = ACS_CONTROL_OFF
sakthipriya 0:7b4c00e3912f 744 else if(ACS_STATUS == '1')
sakthipriya 0:7b4c00e3912f 745 BAE_STATUS =(BAE_STATUS & 0xFFFF1FFF) | 0x00002000; // set ACS_STATUS = ACS_LOW_POWER
sakthipriya 0:7b4c00e3912f 746 else if(ACS_STATUS == '2')
sakthipriya 0:7b4c00e3912f 747 BAE_STATUS = (BAE_STATUS & 0xFFFF1FFF)| 0x00004000; // set ACS_STATUS = ACS_ZAXIS_MOMENT_ONLY
sakthipriya 0:7b4c00e3912f 748 else if(ACS_STATUS == '3')
sakthipriya 0:7b4c00e3912f 749 BAE_STATUS = (BAE_STATUS & 0xFFFF1FFF) | 0x00006000; // set ACS_STATUS = ACS_DATA_ACQ_FAILURE
sakthipriya 0:7b4c00e3912f 750 else if(ACS_STATUS == '4')
sakthipriya 0:7b4c00e3912f 751 BAE_STATUS = (BAE_STATUS & 0xFFFF1FFF) | 0x00008000; // set ACS_STATUS = ACS_NOMINAL_ONLY
sakthipriya 0:7b4c00e3912f 752 else if(ACS_STATUS == '5')
sakthipriya 0:7b4c00e3912f 753 BAE_STATUS =(BAE_STATUS & 0xFFFF1FFF) | 0x0000A000; // set ACS_STATUS = ACS_AUTO_CONTROL
sakthipriya 0:7b4c00e3912f 754 else if(ACS_STATUS == '6')
sakthipriya 0:7b4c00e3912f 755 BAE_STATUS =(BAE_STATUS & 0xFFFF1FFF) | 0x0000C000; // set ACS_STATUS = ACS_DETUMBLING_ONLY
sakthipriya 0:7b4c00e3912f 756 else
sakthipriya 0:7b4c00e3912f 757 BAE_STATUS =(BAE_STATUS & 0xFFFF1FFF) | 0x0000E000; // set ACS_STATUS = INVALID STATE
sakthipriya 0:7b4c00e3912f 758
sakthipriya 0:7b4c00e3912f 759 if(ACS_STATE == '0')
sakthipriya 0:7b4c00e3912f 760 BAE_ENABLE = (BAE_ENABLE & 0xFFFFFF8F); //ACS_STATE = ACS_CONTROL_OFF
sakthipriya 0:7b4c00e3912f 761 else if(ACS_STATE == '2')
sakthipriya 0:7b4c00e3912f 762 BAE_ENABLE = ((BAE_ENABLE & 0xFFFFFF8F)| 0x00000020); // ACS_STATE = ACS_ZAXIS_MOMENT_ONLY
sakthipriya 0:7b4c00e3912f 763 else if(ACS_STATE == '3')
sakthipriya 0:7b4c00e3912f 764 BAE_ENABLE = ((BAE_ENABLE & 0xFFFFFF8F)| 0x00000030); // set ACS_STATUS = ACS_DATA_ACQ_FAILURE
sakthipriya 0:7b4c00e3912f 765 else if(ACS_STATE == '4')
sakthipriya 0:7b4c00e3912f 766 BAE_ENABLE = ((BAE_ENABLE & 0xFFFFFF8F)| 0x00000040); // ACS_STATE = ACS_NOMINAL_ONLY
sakthipriya 0:7b4c00e3912f 767 else if(ACS_STATE == '5')
sakthipriya 0:7b4c00e3912f 768 BAE_ENABLE = ((BAE_ENABLE & 0xFFFFFF8F)| 0x00000050); // ACS_STATE = ACS_AUTO_CONTROL
sakthipriya 0:7b4c00e3912f 769 else if(ACS_STATE == '6')
sakthipriya 0:7b4c00e3912f 770 BAE_ENABLE = ((BAE_ENABLE & 0xFFFFFF8F)| 0x00000060); //ACS_STATE = ACS_DETUMBLING_CONTROL
sakthipriya 0:7b4c00e3912f 771
sakthipriya 0:7b4c00e3912f 772 //...............eps......................//
sakthipriya 5:bb592f3185cc 773
sakthipriya 5:bb592f3185cc 774
sakthipriya 9:194afacf7449 775 if (EPS_INIT_STATUS==1) // Set EPS_INIT_STATUS
sakthipriya 5:bb592f3185cc 776 BAE_STATUS |= 0x00010000;
sakthipriya 9:194afacf7449 777 else if(EPS_INIT_STATUS==0) // Clear
sakthipriya 5:bb592f3185cc 778 BAE_STATUS &= 0xFFFEFFFF;
sakthipriya 5:bb592f3185cc 779
sakthipriya 5:bb592f3185cc 780
sakthipriya 9:194afacf7449 781 if (EPS_MAIN_STATUS==1) // Set EPS_MAIIN_STATUS
sakthipriya 5:bb592f3185cc 782 BAE_STATUS |= 0x00040000;
sakthipriya 9:194afacf7449 783 else if(EPS_MAIN_STATUS==0) // Clear
sakthipriya 5:bb592f3185cc 784 BAE_STATUS &= 0xFFFBFFFF;
sakthipriya 5:bb592f3185cc 785
sakthipriya 5:bb592f3185cc 786
sakthipriya 9:194afacf7449 787 if (EPS_BATTERY_GAUGE_STATUS==1) // Set EPS_BATTERY_GAUGE_STATUS
sakthipriya 5:bb592f3185cc 788 BAE_STATUS |= 0x00020000;
sakthipriya 9:194afacf7449 789 else if(EPS_BATTERY_GAUGE_STATUS==0) // Clear
sakthipriya 5:bb592f3185cc 790 BAE_STATUS &= 0xFFFDFFFF;
sakthipriya 5:bb592f3185cc 791
sakthipriya 5:bb592f3185cc 792
azaddevarm 30:22b338b027de 793 if (EPS_BTRY_TMP_STATUS==1) // Set EPS_BTRY_TMP_STATUS
sakthipriya 5:bb592f3185cc 794 BAE_STATUS |= 0x00080000;
azaddevarm 30:22b338b027de 795 else if(EPS_BTRY_TMP_STATUS==0) // Clear
sakthipriya 5:bb592f3185cc 796 BAE_STATUS &= 0xFFF7FFFF;
sakthipriya 5:bb592f3185cc 797
sakthipriya 5:bb592f3185cc 798 if (EPS_STATUS==0)
sakthipriya 5:bb592f3185cc 799 BAE_STATUS = (BAE_STATUS & 0xFF8FFFFF); // Set EPS_ERR_BATTERY_TEMP
sakthipriya 5:bb592f3185cc 800 else if (EPS_STATUS==1)
sakthipriya 5:bb592f3185cc 801 BAE_STATUS = (BAE_STATUS & 0xFF8FFFFF)|0x00010000; // Set EPS_BATTERY_HEATER_DISABLED
azaddevarm 31:046685b48b71 802 /*
sakthipriya 5:bb592f3185cc 803 else if (EPS_STATUS==2)
sakthipriya 5:bb592f3185cc 804 BAE_STATUS = (BAE_STATUS & 0xFF8FFFFF)|0x00020000; // Set EPS_ERR_HEATER_SWITCH_OFF
sakthipriya 5:bb592f3185cc 805 else if (EPS_STATUS==3)
sakthipriya 5:bb592f3185cc 806 BAE_STATUS = (BAE_STATUS & 0xFF8FFFFF)|0x00030000; // Set EPS_ERR_HEATER_SWITCH_ON
azaddevarm 31:046685b48b71 807 */
sakthipriya 5:bb592f3185cc 808 else if (EPS_STATUS==4)
sakthipriya 5:bb592f3185cc 809 BAE_STATUS = (BAE_STATUS & 0xFF8FFFFF)|0x00040000; // Set EPS_BATTERY_HEATER_OFF
sakthipriya 5:bb592f3185cc 810 else if (EPS_STATUS==5)
sakthipriya 5:bb592f3185cc 811 BAE_STATUS = (BAE_STATUS & 0xFF8FFFFF)|0x00050000; // Set EPS_BATTERY_HEATER_ON
sakthipriya 5:bb592f3185cc 812
sakthipriya 5:bb592f3185cc 813
azaddevarm 30:22b338b027de 814 if(EPS_BTRY_HTR == 1)
sakthipriya 5:bb592f3185cc 815 BAE_ENABLE |= 0x00000080;
azaddevarm 30:22b338b027de 816 else if(EPS_BTRY_HTR == 0)
sakthipriya 5:bb592f3185cc 817 BAE_ENABLE = BAE_ENABLE &0xFFFFFF7;
sakthipriya 3:07e15677a75c 818
sakthipriya 0:7b4c00e3912f 819
sakthipriya 0:7b4c00e3912f 820
sakthipriya 0:7b4c00e3912f 821 pc.printf("\n\r BAE status %x BAE ENABLE %x ",BAE_STATUS,BAE_ENABLE);
sakthipriya 0:7b4c00e3912f 822 }
sakthipriya 0:7b4c00e3912f 823
sakthipriya 0:7b4c00e3912f 824 void FCTN_BAE_INIT()
sakthipriya 0:7b4c00e3912f 825 {
sakthipriya 0:7b4c00e3912f 826 printf("\n\r Initialising BAE ");
sakthipriya 3:07e15677a75c 827 //..........intial status....//
Bragadeesh153 13:fb7facaf308b 828 ACS_STATE = 4;
sakthipriya 9:194afacf7449 829 ACS_ATS_ENABLE = 1;
sakthipriya 9:194afacf7449 830 ACS_DATA_ACQ_ENABLE = 1;
azaddevarm 30:22b338b027de 831 EPS_BTRY_HTR = 1;
Bragadeesh153 13:fb7facaf308b 832 actual_data.power_mode=3;
sakthipriya 9:194afacf7449 833 //............intializing pins................//
sakthipriya 9:194afacf7449 834 ATS1_SW_ENABLE = 0;
sakthipriya 9:194afacf7449 835 ATS2_SW_ENABLE = 1;
Bragadeesh153 13:fb7facaf308b 836
Bragadeesh153 13:fb7facaf308b 837 DRV_XY_EN = 1;
Bragadeesh153 13:fb7facaf308b 838 DRV_Z_EN = 1;
Bragadeesh153 13:fb7facaf308b 839 TRZ_SW = 1;
Bragadeesh153 13:fb7facaf308b 840 TRXY_SW = 1;
sakthipriya 9:194afacf7449 841
sakthipriya 3:07e15677a75c 842 //............................//
azaddevarm 30:22b338b027de 843 //FCTN_ACS_INIT();
azaddevarm 30:22b338b027de 844 FCTN_EPS_INIT();
lakshya 14:a9588f443f1a 845 //FCTN_BCN_INIT();
sakthipriya 3:07e15677a75c 846
sakthipriya 3:07e15677a75c 847
sakthipriya 0:7b4c00e3912f 848 FLAG();
sakthipriya 0:7b4c00e3912f 849 }
sakthipriya 0:7b4c00e3912f 850
sakthipriya 0:7b4c00e3912f 851 int main()
sakthipriya 0:7b4c00e3912f 852 {
sakthipriya 0:7b4c00e3912f 853 pc.printf("\n\r BAE Activated. Testing Version 1.1 \n");
Bragadeesh153 13:fb7facaf308b 854 CDMS_RESET = 1;
lakshya 14:a9588f443f1a 855 /*if (BCN_FEN == 0) //dummy implementation
sakthipriya 0:7b4c00e3912f 856 {
sakthipriya 0:7b4c00e3912f 857 pc.printf("\n\r RF silence ");
Bragadeesh153 12:af1d7e18b868 858 FCTN_BCN_FEN();
sakthipriya 0:7b4c00e3912f 859 t_rfsilence.start();//Start the timer for RF_Silence
sakthipriya 0:7b4c00e3912f 860 while(t_rfsilence.read() < RF_SILENCE_TIME);
sakthipriya 0:7b4c00e3912f 861 }
sakthipriya 0:7b4c00e3912f 862 */
sakthipriya 3:07e15677a75c 863
sakthipriya 9:194afacf7449 864 //ACS_INIT_STATUS = 0;
sakthipriya 9:194afacf7449 865 //ACS_DATA_ACQ_STATUS = 0;
Bragadeesh153 13:fb7facaf308b 866
Bragadeesh153 13:fb7facaf308b 867
sakthipriya 9:194afacf7449 868
Bragadeesh153 13:fb7facaf308b 869 //FLAG();
azaddevarm 30:22b338b027de 870 //FCTN_BAE_INIT();
sakthipriya 3:07e15677a75c 871
sakthipriya 0:7b4c00e3912f 872
sakthipriya 0:7b4c00e3912f 873 //...i2c..
sakthipriya 3:07e15677a75c 874 //strcpy(telemetry,"This is telemetry THis is sample telemetry. ffffffffffffffffffffffffffffff end");
sakthipriya 0:7b4c00e3912f 875 slave.address(addr);
sakthipriya 0:7b4c00e3912f 876 irpt_2_mstr = 0;
sakthipriya 0:7b4c00e3912f 877
sakthipriya 0:7b4c00e3912f 878 ptr_t_i2c = new Thread(T_TC);
sakthipriya 0:7b4c00e3912f 879 ptr_t_i2c->set_priority(osPriorityHigh);
sakthipriya 5:bb592f3185cc 880
sakthipriya 0:7b4c00e3912f 881 irpt_4m_mstr.enable_irq();
sakthipriya 0:7b4c00e3912f 882 irpt_4m_mstr.rise(&FCTN_I2C_ISR);
sakthipriya 5:bb592f3185cc 883 // ir1.fall(&ir1clear); //Battery Gauge - Alert Bar Signal
lakshya 14:a9588f443f1a 884 /* ir2.fall(&ir2clear); //TRXY Driver TR switch Fault
lakshya 14:a9588f443f1a 885 ir3.fall(&ir3clear); //TRZ Driver Fault Bar
lakshya 14:a9588f443f1a 886 ir4.fall(&ir4clear); //TRZ Driver TR switch Fault
lakshya 14:a9588f443f1a 887 ir5.fall(&ir5clear); //CDMS - Switch Fault
lakshya 14:a9588f443f1a 888 ir6.fall(&ir6clear); //Beacon- Switch OC bar
lakshya 14:a9588f443f1a 889 ir7.fall(&ir7clear); //Charger IC - Fault Bar
lakshya 14:a9588f443f1a 890
lakshya 14:a9588f443f1a 891 */
sakthipriya 0:7b4c00e3912f 892 RtosTimer t_sc_timer(T_SC,osTimerPeriodic); // Initiating the scheduler thread
sakthipriya 0:7b4c00e3912f 893 t_sc_timer.start(10000);
sakthipriya 0:7b4c00e3912f 894 t_start.start();
sakthipriya 0:7b4c00e3912f 895 pc.printf("\n\rStarted scheduler %f\n\r",t_start.read());
sakthipriya 0:7b4c00e3912f 896
Bragadeesh153 13:fb7facaf308b 897
azaddevarm 32:623747b1cecb 898 FCTN_BAE_INIT();
sakthipriya 0:7b4c00e3912f 899 while(1); //required to prevent main from terminating
sakthipriya 3:07e15677a75c 900 }
sakthipriya 3:07e15677a75c 901