Simple version of COM_MNG_TMTC_CODE for IITMSAT.
Dependencies: mbed-rtos mbed FreescaleIAP SimpleDMA
Diff: adf.h
- Revision:
- 52:0bd68655c651
- Parent:
- 9:e9eaada136c6
- Child:
- 53:18db568f1098
--- a/adf.h Tue Jan 12 15:08:29 2016 +0000 +++ b/adf.h Thu Jan 14 06:16:42 2016 +0000 @@ -1,6 +1,6 @@ //without reset feature , with state checks. InterruptIn IRQ(ADF_IRQ); -Ticker ticker; +//Ticker ticker; bool sent_tmfrom_SDcard; bool loop_on; @@ -420,12 +420,12 @@ }\ } - +/* void check(){ if(IRQ){ gCOM_MNG_TMTC_THREAD->signal_set(signal); } -} +}*/ #define send_data {\ @@ -464,7 +464,7 @@ spi.write(0xFF);\ gCS_ADF=1;\ SPI_mutex.unlock();\ - ticker.attach_us(&check,32000);\ + /*ticker.attach_us(&check,32000);*/\ } @@ -486,7 +486,7 @@ gCOM_MNG_TMTC_THREAD->signal_wait(COM_MNG_TMTC_SIGNAL_ADF_SD);\ if(ADF_off){\ SPI_mutex.lock();\ - ticker.detach();\ + /*ticker.detach();*/\ gCS_ADF=0;\ spi.write(0xB1);\ gCS_ADF=1;\ @@ -523,55 +523,73 @@ // gCOM_MNG_TMTC_THREAD->signal_set(signal); //} -void configure_adf(){ - finish_write_data = false; - buffer_state = true; - last_buffer = false; - loop_on = true; - ADF_off = false; - /*initial adf check*/ - initial_adf_check; - gPC.puts("initial adf check\r\n"); - initiate; -// gPC.puts("initiate done\r\n"); - gPC.puts("adf configured\r\n"); +#define configure_adf {\ + finish_write_data = false;\ + buffer_state = true;\ + last_buffer = false;\ + loop_on = true;\ + ADF_off = false;\ + initial_adf_check;\ + gPC.puts("initial adf check\r\n");\ + initiate;\ + gPC.puts("adf configured\r\n");\ + gLEDR = !gLEDR;\ } -void adf_not_SDcard(){ - sent_tmfrom_SDcard = false; - configure_adf(); - signal = COM_MNG_TMTC_SIGNAL_ADF_NSD; - send_data; - -// gPC.puts("Inside adf transmission\r\n"); -// ADF_non_responsive_timeout.attach(&ADF_non_responsive_fun, 10); - - while(loop_on){ - gCOM_MNG_TMTC_THREAD->signal_wait(COM_MNG_TMTC_SIGNAL_ADF_NSD); +#define adf_not_SDcard {\ + sent_tmfrom_SDcard = false;\ + configure_adf;\ + signal = COM_MNG_TMTC_SIGNAL_ADF_NSD;\ + send_data;\ + while(loop_on){\ + wait_ms(COM_TX_TICKER_LIMIT);\ + if(IRQ){\ + if(finish_write_data){\ + if(ADF_off){\ + SPI_mutex.lock();\ + gCS_ADF=0;\ + spi.write(0xB1);\ + gCS_ADF=1;\ + SPI_mutex.unlock();\ + loop_on = false;\ + gPC.puts("Transmission done\r\n");\ + }\ + else{\ + ADF_off = true;\ + }\ + }else{\ + write_data;\ + snd_tm.transmit_data(buffer_112,&last_buffer);\ + }\ + }\ + }\ + gPC.puts("after while loop\r\n");\ +} // if( ADF_non_responsive_flag == false ){ - if(finish_write_data){ - if(ADF_off){ - SPI_mutex.lock(); - ticker.detach(); - // wait_ms(35); - gCS_ADF=0; - spi.write(0xB1); - gCS_ADF=1; - SPI_mutex.unlock(); - loop_on = false; - gPC.puts("Transmission done\r\n"); - } - else{ - ADF_off = true; - } - }else{ - write_data; - snd_tm.transmit_data(buffer_112,&last_buffer); - } +// if(finish_write_data){ +// if(ADF_off){ +// break; +// } +// } +// SPI_mutex.lock(); +// ticker.detach(); +// // wait_ms(35); +// gCS_ADF=0; +// spi.write(0xB1); +// gCS_ADF=1; +// SPI_mutex.unlock(); +// loop_on = false; +// gPC.puts("Transmission done\r\n"); +// } +// else{ +// ADF_off = true; +// } +// }else{ +// write_data; +// snd_tm.transmit_data(buffer_112,&last_buffer); +// } // } // else{ // gPC.puts("ADF non responsive\r\n"); // break; -// } - } -} \ No newline at end of file +// } \ No newline at end of file