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 SimpleDMA mbed-rtos mbed
Fork of CDMS_CODE by
CDMS_HK.h
00001 void FCTN_CDMS_HK_MAIN(); 00002 void FCTN_CDMS_HK(); 00003 void VERIFY_COMRX(); 00004 void VERIFY_RTC(); 00005 void CDMS_HK_SD(); 00006 void HANDLE_HW_FAULTS(); 00007 void HANDLE_HW_FAULT_SD(); 00008 void HANDLE_HW_FAULT_BAE(); 00009 void HANDLE_HW_FAULT_PL(); 00010 void FUNC_CDMS_GPIO_STATUS(); 00011 void minMaxHkData(); 00012 void COLLECT_CDMS_RAM(); 00013 00014 AnalogIn TempInput(PIN27); // Input from Current Multiplexer 00015 AnalogIn CDMS_temp_sensor(PIN53); 00016 AnalogIn COMRX_RSSI_volatge(PIN70); 00017 00018 00019 DigitalOut SelectLinec3 (PIN79); // MSB of Select Lines 00020 DigitalOut SelectLinec2 (PIN78); 00021 DigitalOut SelectLinec1 (PIN77); 00022 DigitalOut SelectLinec0 (PIN76); // LSB of Select Lines 00023 00024 Convolution CDMS_HEALTH; 00025 Convolution BAE_HEALTH; 00026 unsigned char CDMS_HK_FRAME[134] = {0}; 00027 char BAE_HK[134] = {0}; 00028 uint8_t convoluted_CDMS_HK[270]; 00029 uint8_t interleave_CDMS_HK[288]; 00030 uint8_t CDMS_HEALTH_FINAL[512] = {0}; 00031 uint8_t convoluted_BAE_HK[270]; 00032 uint8_t interleave_BAE_HK[288]; 00033 uint8_t BAE_HEALTH_FINAL[512] = {0}; 00034 unsigned char BAE_HK_FRAME[134] = {0}; 00035 00036 00037 00038 void FCTN_CDMS_HK_MAIN(void const *args) 00039 { 00040 uint8_t sd_stat = 0; 00041 while(1) 00042 { 00043 gHK_THREAD->signal_wait(HK_SIGNAL); 00044 gPC.printf("\n\nEntering HK thread\n"); 00045 00046 gMutex.lock(); 00047 00048 CDMS_HK_MAIN_STATUS = 0x01; 00049 CDMS_HK_MAIN_COUNTER++; 00050 00051 FCTN_CDMS_HK(); 00052 RSSI_volatge = COMRX_RSSI_volatge.read() * 3.3; 00053 VERIFY_COMRX(); 00054 VERIFY_RTC(); 00055 HANDLE_HW_FAULTS(); 00056 FUNC_CDMS_GPIO_STATUS(); //yet to be done 00057 00058 uint8_t CDMS_quant[20]; 00059 CDMS_quant[1]= (uint8_t)quant_data.CDMS_temp_quant; 00060 CDMS_quant[2]= (uint8_t)RSSI_volatge; 00061 for(int i=0; i<16; i++) { 00062 CDMS_quant[i+4]= (uint8_t)quant_data.temp_quant[i]; 00063 } 00064 minMaxHkData(); 00065 00066 CDMS_HEALTH_DATA[1] = GPIO_STATUS; //Reading GPIO Pins 00067 CDMS_HEALTH_DATA[0] = GPIO_STATUS >> 8; 00068 COLLECT_CDMS_RAM(); 00069 for(int i = 0;i<84;i++) 00070 CDMS_HEALTH_DATA[2+i] = CDMS_RAM[i]; //Reading RAM parameters 00071 for(int i = 0;i<20;i++) //Collecting Data from Temp sensors 00072 CDMS_HEALTH_DATA[86+i] = CDMS_quant[i]; 00073 00074 // Here: Have to FIT flash data. 00075 00076 uint64_t time = FCTN_CDMS_RD_RTC() >> 7; //Reading Time from RTC 00077 for(int i = 124; i<128; i++) 00078 CDMS_HEALTH_DATA[i] = time >> i*8; 00079 gPC.printf("0x%x\n",time); 00080 FCTN_SD_MNGR(); //Adding FSC & TMID to TM frame 00081 CDMS_HK_FRAME[0] = 0x20; 00082 CDMS_HK_FRAME[1] = FSC_CURRENT[4]+1; 00083 CDMS_HK_FRAME[2] = (FSC_CURRENT[4]+1) >> 8; 00084 CDMS_HK_FRAME[3] = (FSC_CURRENT[4]+1) >> 16; 00085 00086 for(int i = 0; i<128; i++) /*Adding actual CDMS Health data to TM frame*/ 00087 CDMS_HK_FRAME[4+i] = CDMS_HEALTH_DATA[i]; 00088 00089 uint16_t crc = crc16_gen(CDMS_HK_FRAME,132); /*Adding CRC to TM frame*/ 00090 CDMS_HK_FRAME[133] = crc; 00091 CDMS_HK_FRAME[132] = crc >> 8; 00092 00093 exor(CDMS_HK_FRAME); 00094 CDMS_HEALTH.convolutionEncode(CDMS_HK_FRAME , convoluted_CDMS_HK); 00095 CDMS_HEALTH.convolutionEncode(CDMS_HK_FRAME + 67, convoluted_CDMS_HK + 135); 00096 interleave(convoluted_CDMS_HK , interleave_CDMS_HK); 00097 interleave(convoluted_CDMS_HK +135, interleave_CDMS_HK + 144); 00098 for(int i=0; i<288; i++) 00099 CDMS_HEALTH_FINAL[i] = interleave_CDMS_HK[i]; 00100 00101 sd_stat = SD_WRITE(CDMS_HEALTH_FINAL,FSC_CURRENT[4]+1,4); 00102 if(sd_stat) 00103 { 00104 gPC.puts("sd write failure"); 00105 break; 00106 } 00107 /*gPC.printf("Completed CDMS HK\t")*/; 00108 00109 /*---------------------------------- BAE HK --------------------------------------------*/ 00110 00111 BAE_HK_I2C = FCTN_I2C_READ(BAE_HK,134); 00112 /*gPC.printf("Entering BAE HK\t")*/; 00113 if(BAE_HK_I2C == 0) { 00114 crc = crc16_gen((unsigned char *)BAE_HK,132); 00115 if(crc == ((uint16_t)BAE_HK[132] << 8) | (uint16_t)BAE_HK[133]){ 00116 TIME_LATEST_I2C_BAE = FCTN_CDMS_RD_RTC() >> 7; 00117 /*for(int i = 0; i<15; i++) 00118 gPC.printf("\r 0x%02X\n",BAE_HK[i]);*/ 00119 for(int i = 0; i<4; i++) 00120 BAE_HK[i] = time >> i; 00121 BAE_HK_FRAME[0] = 0x28; 00122 BAE_HK_FRAME[1] = FSC_CURRENT[5]+1; 00123 BAE_HK_FRAME[2] = (FSC_CURRENT[5]+1) >> 8; 00124 BAE_HK_FRAME[3] = (FSC_CURRENT[5]+1) >> 16; 00125 for(int i = 0; i<128; i++) /*Adding actual CDMS Health data to TM frame*/ 00126 BAE_HK_FRAME[4+i] = BAE_HK[i]; 00127 crc = crc16_gen(BAE_HK_FRAME,132); /*Adding CRC to TM frame*/ 00128 BAE_HK_FRAME[133] = crc; 00129 BAE_HK_FRAME[132] = crc >> 8; 00130 exor(BAE_HK_FRAME); 00131 BAE_HEALTH.convolutionEncode(BAE_HK_FRAME , convoluted_BAE_HK); 00132 BAE_HEALTH.convolutionEncode(BAE_HK_FRAME + 67, convoluted_BAE_HK + 135); 00133 interleave(convoluted_BAE_HK , interleave_BAE_HK); 00134 interleave(convoluted_BAE_HK +135, interleave_BAE_HK + 144); 00135 for(int i=0; i<288; i++) 00136 BAE_HEALTH_FINAL[i] = interleave_BAE_HK[i]; 00137 sd_stat = SD_WRITE(BAE_HEALTH_FINAL,FSC_CURRENT[5]+1,5); 00138 if(sd_stat) 00139 { 00140 gPC.puts("sd write failure"); 00141 break; 00142 } 00143 } 00144 00145 } else { 00146 /*gPC.printf("BAE HK data not recieved through I2C\t")*/; 00147 for(int i = 0; i<134; i++) 00148 BAE_HK[i] = 0; 00149 } 00150 /*gPC.printf("Completed BAE HK\n")*/; 00151 00152 /*----------------------------------Beacon message--------------------------------------*/ 00153 unsigned char SC_HK_LBM_0[135]; 00154 SC_HK_LBM_0[0] = 0; // Sending long beacon msg as telecommand with Packet sequence count 0x00 00155 // Add HK bits 00156 00157 // Add SC bits 00158 crc = crc16_gen(SC_HK_LBM_0,133); 00159 SC_HK_LBM_0[132] = crc; 00160 SC_HK_LBM_0[133] = crc >> 8; 00161 bool y; 00162 y = FCTN_I2C_WRITE((char *)SC_HK_LBM_0,135); 00163 if(y == 0) 00164 /*gPC.printf("long Bcn sent\n\r")*/; 00165 else 00166 gPC.printf("long Bcn not sent\r\n"); 00167 gPC.printf("\rCompleted HK\n"); 00168 gMutex.unlock(); 00169 } 00170 } 00171 00172 int quantiz(float start,float step,float x) 00173 { 00174 int y=(x-start)/step; 00175 if(y<=0)y=0; 00176 if(y>=255)y=255; 00177 return y; 00178 } 00179 00180 char saveMin(char x,char y) 00181 { 00182 return (y<x)?y:x; 00183 } 00184 00185 char saveMax(char x,char y) 00186 { 00187 return (y>x)?y:x; 00188 } 00189 00190 void minMaxHkData() 00191 { 00192 if(firstCount==true) { 00193 for (int i = 0; i < 16; ++i) { 00194 min_max_data.temp_min[i] = quant_data.temp_quant[i]; 00195 min_max_data.temp_max[i] = quant_data.temp_quant[i]; 00196 } 00197 00198 min_max_data.CDMS_temp_min=quant_data.CDMS_temp_quant; 00199 min_max_data.CDMS_temp_max=quant_data.CDMS_temp_quant; 00200 } else { 00201 for (int i = 0; i < 16; ++i) { 00202 min_max_data.temp_min[i] = saveMin(min_max_data.temp_min[i],quant_data.temp_quant[i]); 00203 min_max_data.temp_max[i] = saveMax(min_max_data.temp_max[i],quant_data.temp_quant[i]); 00204 } 00205 00206 min_max_data.CDMS_temp_min = saveMin(min_max_data.CDMS_temp_min,quant_data.CDMS_temp_quant); 00207 min_max_data.CDMS_temp_max = saveMax(min_max_data.CDMS_temp_max,quant_data.CDMS_temp_quant); 00208 } 00209 firstCount=false; 00210 } 00211 00212 void FCTN_CDMS_HK() 00213 { 00214 00215 int Iteration=0; 00216 00217 SelectLinec0=0; 00218 SelectLinec1=0; 00219 SelectLinec2=0; 00220 SelectLinec3=0; 00221 00222 for(Iteration=0; Iteration<16; Iteration++) { 00223 00224 actual_data.temp_actual[Iteration]=TempInput.read(); 00225 00226 SelectLinec0=!(SelectLinec0); 00227 if(Iteration%2==1) 00228 SelectLinec1=!(SelectLinec1); 00229 if(Iteration%4==3) 00230 SelectLinec2=!(SelectLinec2); 00231 if(Iteration%8==7) 00232 SelectLinec3=!(SelectLinec3); 00233 } 00234 00235 actual_data.CDMS_temp_actual=(-90.7*3.3*CDMS_temp_sensor.read())+190.1543; 00236 00237 for(Iteration=0; Iteration<16; Iteration++) { 00238 00239 if(Iteration<14) { 00240 00241 actual_data.temp_actual[Iteration]=actual_data.temp_actual[Iteration]*3.3; 00242 int resistance; 00243 00244 resistance=24000*actual_data.temp_actual[Iteration]/(3.3-actual_data.temp_actual[Iteration]); 00245 if(actual_data.temp_actual[Iteration]>1.47) { 00246 actual_data.temp_actual[Iteration]=3694/log(24.032242*resistance); 00247 } else { 00248 00249 actual_data.temp_actual[Iteration]=3365.4/log(7.60573*resistance); 00250 } 00251 } else 00252 actual_data.temp_actual[Iteration]=(-90.7*3.3*actual_data.temp_actual[Iteration])+190.1543; 00253 } 00254 00255 for(Iteration=0; Iteration<16; Iteration++) { 00256 00257 if(Iteration<14) { 00258 00259 quant_data.temp_quant[Iteration]=quantiz(tstart_thermistor,tstep_thermistor,actual_data.temp_actual[Iteration]); 00260 } else 00261 quant_data.temp_quant[Iteration]=quantiz(tstart,tstep,actual_data.temp_actual[Iteration]); 00262 } 00263 00264 quant_data.CDMS_temp_quant=quantiz(tstart,tstep,actual_data.CDMS_temp_actual); 00265 00266 minMaxHkData(); 00267 } 00268 00269 void FUNC_CDMS_GPIO_STATUS() //Polls the status of Input GPIO PINS 00270 { 00271 //V_A_PGOOD //TRZ EN 00272 GPIO_STATUS=(V_A_PGOOD)?(GPIO_STATUS)||((uint16_t)(0x1<<15)):(GPIO_STATUS)&(~((uint16_t)(0x1<<15))); 00273 //V_B_PGOOD_1 //3V3BPGOOD //$ 00274 GPIO_STATUS=(V_B_PGOOD_1)?(GPIO_STATUS)||((uint16_t)(0x1<<14)):(GPIO_STATUS)&(~((uint16_t)(0x1<<14))); 00275 //V_B_PGOOD_2 //3V3BEN //$ 00276 GPIO_STATUS=(V_B_PGOOD_2)?(GPIO_STATUS)||((uint16_t)(0x1<<13)):(GPIO_STATUS)&(~((uint16_t)(0x1<<13))); 00277 //V_C_PGOOD //3V3CPGOOD //$ 00278 GPIO_STATUS=(V_C_PGOOD)?(GPIO_STATUS)||((uint16_t)(0x1<<12)):(GPIO_STATUS)&(~((uint16_t)(0x1<<12))); 00279 //COMRX_OC_FAULT //$ 00280 GPIO_STATUS=(COMRX_OC_FAULT)?(GPIO_STATUS)||((uint16_t)(0x1<<11)):(GPIO_STATUS)&(~((uint16_t)(0x1<<11))); 00281 // COMTX_OC_FAULT //$ 00282 GPIO_STATUS=(COMTX_OC_FAULT)?(GPIO_STATUS)||((uint16_t)(0x1<<10)):(GPIO_STATUS)&(~((uint16_t)(0x1<<10))); 00283 //BAE_OC_FAULT //$ 00284 GPIO_STATUS=(BAE_OC_FAULT)?(GPIO_STATUS)||((uint16_t)(0x1<<9)):(GPIO_STATUS)&(~((uint16_t)(0x1<<9))); 00285 //PL_GPIO_1_STATUS //$ 00286 GPIO_STATUS=(PL_GPIO_1_STATUS)?(GPIO_STATUS)||((uint16_t)(0x1<<8)):(GPIO_STATUS)&(~((uint16_t)(0x1<<8))); 00287 //PL_GPIO_2_STATUS //$ 00288 GPIO_STATUS=(PL_GPIO_2_STATUS)?(GPIO_STATUS)||((uint16_t)(0x1<<7)):(GPIO_STATUS)&(~((uint16_t)(0x1<<7))); 00289 //PL_GPIO_3_STATUS //$ 00290 GPIO_STATUS=(PL_GPIO_3_STATUS)?(GPIO_STATUS)||((uint16_t)(0x1<<6)):(GPIO_STATUS)&(~((uint16_t)(0x1<<6))); 00291 //PL_BEE_SW_OC_FAULT //to be verified 00292 GPIO_STATUS=(PL_BEE_SW_OC_FAULT)?(GPIO_STATUS)||((uint16_t)(0x1<<5)):(GPIO_STATUS)&(~((uint16_t)(0x1<<5))); 00293 //PL_EPS_LATCH_SW_OC_FAULT // to be verified 00294 GPIO_STATUS=(PL_EPS_LATCH_SW_OC_FAULT)?(GPIO_STATUS)||((uint16_t)(0x1<<4)):(GPIO_STATUS)&(~((uint16_t)(0x1<<4))); 00295 //EPS_V_C_EN_STATUS 00296 GPIO_STATUS=(EPS_V_C_EN_STATUS)?(GPIO_STATUS)||((uint16_t)(0x1<<3)):(GPIO_STATUS)&(~((uint16_t)(0x1<<3))); 00297 //EPS_V_D_EN_STATUS 00298 GPIO_STATUS=(EPS_V_D_EN_STATUS)?(GPIO_STATUS)||((uint16_t)(0x1<<2)):(GPIO_STATUS)&(~((uint16_t)(0x1<<2))); 00299 00300 } 00301 00302 void VERIFY_COMRX() 00303 { 00304 //COMRX_OC_FAULT //$ 00305 if(PIN68==0 && RSSI_volatge > 0.4) { 00306 COMRX_STATUS = COMRX_ALIVE; 00307 } else { 00308 RESET_COMRX(); 00309 COMRX_RESET_COUNTER++; 00310 if(PIN68==0 && RSSI_volatge > 0.4) 00311 COMRX_STATUS = COMRX_ALIVE; 00312 else 00313 COMRX_STATUS = COMRX_DEAD; 00314 } 00315 } 00316 00317 void VERIFY_RTC() 00318 { 00319 if(RTC_STATUS == 0x00) { 00320 if(RTC_FAULTCOUNT == 3) 00321 return; 00322 SPI_mutex.lock(); 00323 gCS_RTC=1; 00324 gCS_RTC=0; 00325 spi.write(0x0F); 00326 if(spi.write(0x00) & 0x04 == 0x04) { 00327 RTC_STATUS = 0x00; 00328 RESET_RTC(); 00329 RTC_FAULTCOUNT++; 00330 } 00331 gCS_RTC=1; 00332 SPI_mutex.unlock(); 00333 } 00334 } 00335 00336 void HANDLE_HW_FAULTS() 00337 { 00338 HANDLE_HW_FAULT_SD(); 00339 HANDLE_HW_FAULT_BAE(); 00340 HANDLE_HW_FAULT_PL(); 00341 } 00342 00343 void HANDLE_HW_FAULT_SD() 00344 { 00345 if(SD_STATUS != DEVICE_DISABLED) { 00346 if(SD_STATUS == DEVICE_OC_FAULT) 00347 SD_SW_EN_DS = 0; //powering on SD 00348 00349 if(SD_OC_FAULT == 0) { 00350 SD_SW_EN_DS = 1; //switching off SD card 00351 00352 SD_FAULTCOUNT++; 00353 SD_STATUS = (SD_FAULTCOUNT == 3) ? DEVICE_DISABLED :DEVICE_OC_FAULT; 00354 } else { 00355 SD_STATUS = DEVICE_POWERED; 00356 SD_FAULTCOUNT = 0; 00357 } 00358 } 00359 } 00360 00361 void HANDLE_HW_FAULT_BAE() 00362 { 00363 if(BAE_STATUS != DEVICE_DISABLED) { 00364 if(BAE_STATUS == DEVICE_OC_FAULT) 00365 BAE_SW_EN_DS = 0; //Power ON BAE 00366 00367 if(BAE_OC_FAULT == 0) { // If OC Fault 00368 BAE_SW_EN_DS = 1; //Switch OFF BAE 00369 BAE_FAULTCOUNT++; 00370 BAE_STATUS = (BAE_FAULTCOUNT == 3)?DEVICE_DISABLED:DEVICE_OC_FAULT; 00371 } else { 00372 BAE_STATUS = DEVICE_POWERED; 00373 BAE_FAULTCOUNT = 0; 00374 } 00375 } 00376 } 00377 00378 void HANDLE_HW_FAULT_PL() 00379 { 00380 if(PL_STATUS != DEVICE_DISABLED) { 00381 if(PL_STATUS == DEVICE_OC_FAULT){ 00382 PYLD_DFF_CLK = 0; 00383 PYLD_DFF = 1; // Switching ON PL 00384 wait_us(1); 00385 PYLD_DFF_CLK = 1; 00386 wait_us(1); 00387 PYLD_DFF_CLK = 0; 00388 wait_us(1); 00389 } 00390 if(PL_BEE_SW_OC_FAULT == 0) { // if OC Fault 00391 PYLD_DFF_CLK = 0; 00392 PYLD_DFF = 0; //Switching OFF PL 00393 wait_us(1); 00394 PYLD_DFF_CLK = 1; 00395 wait_us(1); 00396 PYLD_DFF_CLK = 0; 00397 wait_us(1); 00398 PL_FAULTCOUNT++; 00399 PL_STATUS = (PL_FAULTCOUNT == 3)?DEVICE_DISABLED:DEVICE_OC_FAULT; 00400 } else { 00401 if(PL_STATUS == DEVICE_OC_FAULT){ 00402 PYLD_DFF_CLK = 0; 00403 PYLD_DFF = 0; //Switching OFF PL 00404 wait_us(1); 00405 PYLD_DFF_CLK = 1; 00406 wait_us(1); 00407 PYLD_DFF_CLK = 0; 00408 wait_us(1); 00409 } 00410 PL_STATUS = DEVICE_ENABLED; 00411 PL_FAULTCOUNT = 0; 00412 } 00413 } 00414 } 00415 00416 void COLLECT_CDMS_RAM() 00417 { 00418 CDMS_RAM[0] = ((PL_INIT_STATUS<<7)&0x80)|((PL_MAIN_STATUS<<6)&0x40)|((PL_LOW_POWER<<5)&0x20)|((PL_STATE<<3)&0x18)|(PL_STATUS&0x07); 00419 CDMS_RAM[1] = ((PL_RCV_SC_DATA_STATUS<<7)&0x80)|((COM_SESSION<<6)&0x40)|((COM_RX<<5)&0x20)|((RF_SW_STATUS<<4)&0x10)|((COM_TX<<3)&0x08)|((COM_TX_STATUS<<2)&0x04)|((COM_MNG_TMTC<<1)&0x02)|(EN_CDMS_HK&0x01); 00420 CDMS_RAM[2] = ((EN_PL<<7)&0x80)|((EN_RCV_SC<<6)&0x40)|((CDMS_INIT_STATUS<<5)&0x20)|((CDMS_HK_MAIN_STATUS<<4)&0x10)|((CDMS_HK_STATUS<<2)&0x0C)|((COM_RX_STATUS<<1)&0x02)|(CDMS_RTC_BL&0x01); 00421 CDMS_RAM[3] = CDMS_I2C_ERR_SPEED_COUNTER >> 8; 00422 CDMS_RAM[4] = CDMS_I2C_ERR_SPEED_COUNTER; 00423 CDMS_RAM[5] = CDMS_I2C_ERR_BAE_COUNTER >> 8; 00424 CDMS_RAM[6] = CDMS_I2C_ERR_BAE_COUNTER; 00425 CDMS_RAM[7] = CDMS_HK_MAIN_COUNTER >> 8; 00426 CDMS_RAM[8] = CDMS_HK_MAIN_COUNTER; 00427 CDMS_RAM[9] = PL_MAIN_COUNTER >> 8; 00428 CDMS_RAM[10] = PL_MAIN_COUNTER; 00429 CDMS_RAM[11] = PL_RCV_SC_DATA_COUNTER >> 8; 00430 CDMS_RAM[12] = PL_RCV_SC_DATA_COUNTER; 00431 CDMS_RAM[13] = COMRX_RESET_COUNTER >> 8; 00432 CDMS_RAM[14] = COMRX_RESET_COUNTER; 00433 CDMS_RAM[15] = CDMS_WR_SD_FAULT_COUNTER >> 8; 00434 CDMS_RAM[16] = CDMS_WR_SD_FAULT_COUNTER; 00435 CDMS_RAM[17] = SD_LIB_WRITES >> 8; 00436 CDMS_RAM[18] = SD_LIB_WRITES; 00437 for(int i = 0; i<4; i++) 00438 CDMS_RAM[19+i] = TIME_LATEST_RTC >> i*8; 00439 for(int i = 0; i<4; i++) 00440 CDMS_RAM[23+i] = TIME_LATEST_I2C_BAE >> i*8; 00441 for(int i = 0; i<4; i++) 00442 CDMS_RAM[27+i] = TIME_LATEST_I2C_SPEED >> i*8; 00443 for(int i = 0; i<4; i++) 00444 CDMS_RAM[31+i] = TIME_LATEST_SD_WR >> i*8; 00445 for(int i = 0; i<4; i++) 00446 CDMS_RAM[35+i] = TIME_LATEST_SD_RD >> i*8; 00447 for(int i = 0; i<4; i++) 00448 CDMS_RAM[39+i] = TIME_LATEST_SPI_SPEED >> i*8; 00449 for(int i = 0; i<4; i++) 00450 CDMS_RAM[43+i] = FSC_CURRENT[1] >> i*8; 00451 for(int i = 0; i<4; i++) 00452 CDMS_RAM[47+i] = FSC_LAST[1] >> i*8; 00453 for(int i = 0; i<4; i++) 00454 CDMS_RAM[51+i] = FSC_CURRENT[2] >> i*8; 00455 for(int i = 0; i<4; i++) 00456 CDMS_RAM[55+i] = FSC_LAST[2] >> i*8; 00457 for(int i = 0; i<4; i++) 00458 CDMS_RAM[59+i] = FSC_CURRENT[3] >> i*8; 00459 for(int i = 0; i<4; i++) 00460 CDMS_RAM[63+i] = FSC_LAST[3] >> i*8; 00461 for(int i = 0; i<4; i++) 00462 CDMS_RAM[67+i] = FSC_CURRENT[4] >> i*8; 00463 for(int i = 0; i<4; i++) 00464 CDMS_RAM[71+i] = FSC_LAST[4] >> i*8; 00465 for(int i = 0; i<4; i++) 00466 CDMS_RAM[75+i] = FSC_CURRENT[5] >> i*8; 00467 for(int i = 0; i<4; i++) 00468 CDMS_RAM[79+i] = FSC_LAST[5] >> i*8; 00469 CDMS_RAM[83] = 0x00; 00470 }
Generated on Fri Jul 15 2022 20:36:46 by
1.7.2
