Repository for CDMS code
Dependencies: SimpleDMA mbed-rtos mbed eeprom
Fork of COM_MNG_TMTC_SIMPLE by
Diff: ThreadsAndFunctions.h
- Revision:
- 338:d63eb331a67d
- Parent:
- 333:cddef120cae3
- Child:
- 342:77b0d59897f7
--- a/ThreadsAndFunctions.h Sun Jan 01 09:50:36 2017 +0000 +++ b/ThreadsAndFunctions.h Mon Jan 02 14:21:44 2017 +0000 @@ -4,6 +4,10 @@ #include "COM_MNG_TMTC.h" #include "adf.h" +#include "dmaSPIslave.h" + +dmaSPISlave *gPAY_SPI; + void payload_isr_fun(){ gSCIENCE_THREAD->signal_set(SCIENCE_SIGNAL); } @@ -13,7 +17,6 @@ } void SCIENCE_FUN(void const *args){ - gPAY_SPI = new dmaSPISlave(PAY_SPI_MOSI, PAY_SPI_MISO, PAY_SPI_CLK, PAY_SPI_CS); // gPAY_SPI->frequency(1000000); //1000000 gPAY_SPI->format(8,0); gPC.printf("\n\rTest..........................."); @@ -64,6 +67,10 @@ // UART ISR void rx_read(){ gRX_CURRENT_DATA_NODE->values[gRX_COUNT] = RX1M.getc(); + //Checking RSSI + if(!COM_RSSI_SET) + RSSI_VOLTAGE = COMRX_RSSI_VOLTAGE.read() * 3.3;//to be checked + COM_RSSI_SET = 1; gFLAGS = gFLAGS | UART_INT_FLAG; gCOM_MNG_TMTC_THREAD->signal_set(COM_MNG_TMTC_SIGNAL_UART_INT); } @@ -85,9 +92,9 @@ void after_session(){ gSESSION_TIMEOUT.detach(); gFLAGS = gFLAGS | COM_SESSION_TIMEOUT_FLAG; - if( gMASTER_STATE != TCL_STATE_EXECUTING ){ + //if( gMASTER_STATE != TCL_STATE_EXECUTING ){ gCOM_MNG_TMTC_THREAD->signal_set(COM_MNG_TMTC_SIGNAL_UART_INT); - } + //} } #define reset_all {\ @@ -153,7 +160,7 @@ HK_counter->stop(); gPAY_SPI->bulkRead_pause(); gFLAGS = gFLAGS | COM_SESSION_FLAG; - gSESSION_TIMEOUT.attach(&after_session, SESSION_TIME_LIMIT); + gSESSION_TIMEOUT.attach(&after_session, COM_SESSION_TIMEOUT); gFLAGS = gFLAGS | COM_RX_FLAG; gTOTAL_RAW_BYTES = 0; PUT_RAW_BYTE; @@ -203,6 +210,7 @@ if( gTOTAL_VALID_TC > 0 ){ gPC.printf("valid TC rx: %u\r\n", gTOTAL_VALID_TC); + //gTOTAL_VALID_TC = 1; if( gTOTAL_VALID_TC < COM_MAX_TC_LIMIT ){ // CHECK WEATHER TC LIST HAS MISSING TC OR WEATHER LAST FRAME BIT IS HIGH IN THE LAST PSC-TC //gPC.puts("checking for tc list complete\r\n"); @@ -235,6 +243,7 @@ EXECUTE_OBOSC_ONLY; EXECUTE_TC; gPC.puts("COMPLETED EXECUTION\r\n"); + gPC.printf("master_state : %d\n",gMASTER_STATE); } } else{ @@ -244,7 +253,8 @@ gFLAGS = gFLAGS & (~COM_SESSION_VALIDITY); // ENABLE THREADS HK_counter->start(10000); - gPAY_SPI->bulkRead_resume(&payload_isr_fun); + resume_pl_dma = 1; + //gPAY_SPI->bulkRead_resume(&payload_isr_fun); gSESSION_TIMEOUT.detach(); gFLAGS = gFLAGS & (~COM_SESSION_FLAG); // WARNING: clear COM_MNG_TMTC ? @@ -303,7 +313,7 @@ reset_all; // ENABLE THREADS HK_counter->start(10000); - gPAY_SPI->bulkRead_resume(&payload_isr_fun); + resume_pl_dma = 1; gSESSION_TIMEOUT.detach(); gFLAGS = gFLAGS & (~COM_SESSION_FLAG); } @@ -332,7 +342,7 @@ COM_POWER_OFF_TX; /*ENABLE THREADS*/ HK_counter->start(10000); - gPAY_SPI->bulkRead_resume(&payload_isr_fun); + resume_pl_dma = 1; gSESSION_TIMEOUT.detach(); gFLAGS = gFLAGS & (~COM_MNG_TMTC_RUNNING_FLAG); gFLAGS = gFLAGS & (~COM_SESSION_FLAG); @@ -345,11 +355,19 @@ reset_all; // ENABLE THREADS HK_counter->start(10000); - gPAY_SPI->bulkRead_resume(&payload_isr_fun); + resume_pl_dma = 1; gSESSION_TIMEOUT.detach(); gFLAGS = gFLAGS & (~COM_SESSION_FLAG); } + if(resume_pl_dma) + { + + + resume_pl_dma = 0; + } + //gPC.puts("dma started"); gPAY_SPI->bulkRead_resume(&payload_isr_fun); gMutex.unlock(); + } } \ No newline at end of file