To fix the hang problem
Dependencies: FreescaleIAP SimpleDMA mbed-rtos mbed
Fork of CDMS_CODE by
Diff: adf.h
- Revision:
- 95:42d6747900cb
- Parent:
- 88:b9beee1a7a3e
- Child:
- 96:4ca92f9775e0
--- a/adf.h Sun Jan 24 13:30:11 2016 +0000 +++ b/adf.h Mon Jan 25 06:22:29 2016 +0000 @@ -2,7 +2,6 @@ InterruptIn IRQ(ADF_IRQ); //Ticker ticker; -bool sent_tmfrom_SDcard; bool loop_on; bool ADF_off; bool buffer_state; @@ -246,19 +245,19 @@ #define send_data {\ if(sent_tmfrom_SDcard){\ - send_tm_from_SD_card();\ + send_tm_from_SD_card_fun();\ }else{\ snd_tm.transmit_data(buffer_112,&last_buffer);\ }\ write_data;\ if(sent_tmfrom_SDcard){\ - send_tm_from_SD_card();\ + send_tm_from_SD_card_fun();\ }else{\ snd_tm.transmit_data(buffer_112,&last_buffer);\ }\ write_data;\ if(sent_tmfrom_SDcard){\ - send_tm_from_SD_card();\ + send_tm_from_SD_card_fun();\ }else{\ snd_tm.transmit_data(buffer_112,&last_buffer);\ }\ @@ -296,10 +295,11 @@ gLEDR = !gLEDR;\ } -#define adf_not_SDcard {\ - sent_tmfrom_SDcard = false;\ +#define transmit_adf {\ configure_adf;\ - signal = COM_MNG_TMTC_SIGNAL_ADF_NSD;\ + if(sent_tmfrom_SDcard)\ + signal = COM_MNG_TMTC_SIGNAL_ADF_SD;\ + else signal = COM_MNG_TMTC_SIGNAL_ADF_NSD;\ send_data;\ while(loop_on){\ wait_ms(COM_TX_TICKER_LIMIT);\ @@ -312,47 +312,19 @@ gCS_ADF=1;\ SPI_mutex.unlock();\ loop_on = false;\ - /*gPC.puts("Transmission done\r\n");*/\ + gPC.puts("Transmission done\r\n");\ }\ else{\ ADF_off = true;\ }\ }else{\ write_data;\ - snd_tm.transmit_data(buffer_112,&last_buffer);\ + if(sent_tmfrom_SDcard)\ + send_tm_from_SD_card_fun();\ + else snd_tm.transmit_data(buffer_112,&last_buffer);\ }\ }\ }\ /*gPC.puts("after while loop\r\n");*/\ } -void adf_SND_SDCard() { - sent_tmfrom_SDcard = true; - configure_adf; - signal = COM_MNG_TMTC_SIGNAL_ADF_SD; - send_data; - while(loop_on){ - wait_ms(COM_TX_TICKER_LIMIT); - if(IRQ || bypass_adf){ - 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; - send_tm_from_SD_card(); - } - } - } - /*gPC.puts("after while loop\r\n");*/ -} -