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: mbed mbed-rtos SimpleDMA FreescaleIAP eeprom
Fork of CDMS_CODE_FM_28JAN2017 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
