FM
Dependencies: SimpleDMA eeprom mbed-rtos mbed FreescaleIAP
Fork of CDMS_CODE by
Diff: ThreadsAndFunctions.h
- Revision:
- 346:204497974293
- Parent:
- 342:77b0d59897f7
- Child:
- 348:8e6b2b4d244e
--- a/ThreadsAndFunctions.h Thu Jan 05 17:38:21 2017 +0000 +++ b/ThreadsAndFunctions.h Fri Jan 13 08:00:33 2017 +0000 @@ -3,13 +3,13 @@ #include "COM_MNG_TMTC.h" #include "adf.h" - #include "dmaSPIslave.h" dmaSPISlave *gPAY_SPI; void payload_isr_fun(){ gSCIENCE_THREAD->signal_set(SCIENCE_SIGNAL); + } void payload_isr_fun_dma(void const *args ){ @@ -28,9 +28,13 @@ while(true){ gPC.printf("waiting for Sci sig\n\r"); gSCIENCE_THREAD->signal_wait(SCIENCE_SIGNAL); + gPC.printf("checking mutex in Sci\n\r"); gMutex.lock(); + gPC.printf("locked mutex,entered in Sci thread\n\r"); + + DMA_LED1 = 1; PL_RCV_SC_DATA_STATUS = 1; //gPC.puts("sig_set\r\n"); //for(int i =0; i<PAYLOAD_BUFFER_LENGTH; i++) @@ -41,10 +45,10 @@ //wait(2);/*timeout to be decided*/ if(dma) { - TIME_LATEST_I2C_SPEED = FCTN_CDMS_RD_RTC() >> 7; + // TIME_LATEST_I2C_SPEED = FCTN_CDMS_RD_RTC() >> 7; PL_RCV_SC_DATA_COUNTER++; gPAY_SPI->bulkRead_start(); - DMA_LED1 = !DMA_LED1; // added by samp + // DMA_LED1 = !DMA_LED1; // added by samp //gPAY_SPI->bulkRead_pause(); //gPAY_SPI->bulkRead_resume(&payload_isr_fun); } @@ -52,9 +56,35 @@ srp(gPAYLOAD_BUFFER);//skip one apcket when cdms resets + uint8_t sd_stat1 = 0; + if(BAE_HK_SD_DATA_READY==1) + { + for(int i=0; i<288; i++) + BAE_HEALTH_FINAL[i] = interleave_BAE_HK[i]; + sd_stat1 = SD_WRITE(BAE_HEALTH_FINAL,FSC_CURRENT[5]+1,5); + if(sd_stat1) { + gPC.puts("BAE_HK sd write fail"); + //break; + } + + } + BAE_HK_SD_DATA_READY = 0; + if(CDMS_HK_SD_DATA_READY==1) + { + for(int i=0; i<288; i++) + CDMS_HEALTH_FINAL[i] = interleave_CDMS_HK[i]; + //gPC.printf("\n\r reached here"); + sd_stat1 = SD_WRITE(CDMS_HEALTH_FINAL,FSC_CURRENT[4]+1,4); + + if(sd_stat1) { + gPC.puts("sd write failure $*&^@!~!"); + } + } + CDMS_HK_SD_DATA_READY= 0; /*else gPC.printf("\n\rDMA error");*/ gPC.printf("\r\nreleasing mutex for Sci\n\r"); + DMA_LED1 =0; gMutex.unlock(); } } @@ -62,7 +92,9 @@ //HK Thread(Contains HK_main() and PL_main()) //RTOS timer calllback func void hk_isr(void const *args){ + //gPC.printf("\r\n HK isr \n\r"); gHK_THREAD->signal_set(HK_SIGNAL); + // gPC.printf("\r\n HK 1 \n\r"); } @@ -162,6 +194,7 @@ // DISABLE THREADS HK_counter->stop(); gPAY_SPI->bulkRead_pause(); + PL_GPIO_1_STATUS=0; gFLAGS = gFLAGS | COM_SESSION_FLAG; gSESSION_TIMEOUT.attach(&after_session, COM_SESSION_TIMEOUT); gFLAGS = gFLAGS | COM_RX_FLAG;