working version
Dependencies: mbed mbed-rtos SimpleDMA FreescaleIAP eeprom
Fork of CDMS_CODE_FM_28JAN2017 by
Diff: adf.h
- Revision:
- 2:2caf2a9a13aa
- Parent:
- 1:a0055b3280c8
- Child:
- 3:6c81fc8834e2
--- a/adf.h Mon Dec 14 12:04:01 2015 +0000 +++ b/adf.h Tue Dec 22 06:09:48 2015 +0000 @@ -1,6 +1,5 @@ //without reset feature , with state checks. -DigitalOut led2(LED_RED); -InterruptIn IRQ(PTA14); +InterruptIn IRQ(ADF_IRQ); Ticker ticker; bool sent_tmfrom_SDcard; @@ -10,8 +9,8 @@ uint8_t signal = 0x00; unsigned char bbram_buffer[66]={0x19,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0xF4,0xC2,0x10,0xC0,0x00,0x30,0x31,0x07,0x00,0x01,0x00,0x7F,0x00,0x0B,0x37,0x00,0x00,0x40,0x0C,0x00,0x05,0x00,0x00,0x18,0x12,0x34,0x56,0x10,0x10,0xC4,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00}; -int initialise_card(); -int disk_initialize(); +//int initialise_card(); +//int disk_initialize(); #define bbram_write {\ SPI_mutex.lock();\ @@ -132,18 +131,24 @@ #define initial_adf_check {\ spi.write(CMD_PHY_OFF);\ int tempReturn = 0;\ + bool flag = false;\ while( hw_reset_err_cnt < 2 ){\ assrt_phy_off( tempReturn);\ if( !tempReturn ){\ bbram_write;\ bbram_flag=1;\ + flag = true;\ break;\ }\ else{\ hardware_reset(0);\ hw_reset_err_cnt++;\ + gPC.puts("Resetting hardware\r\n");\ }\ }\ + if( flag == false ){\ + gPC.puts("Seems to be SPI problem\r\n");\ + }\ assrt_phy_off(tempReturn);\ if(!bbram_flag){\ bcn_flag=1;\ @@ -478,7 +483,7 @@ initiate;\ send_data;\ while(loop_on){\ - led2=!led2;\ + /*led2=!led2;*/\ Thread::signal_wait(COM_MNG_TMTC_SIGNAL_ADF_SD);\ if(ADF_off){\ SPI_mutex.lock();\ @@ -510,7 +515,14 @@ gPC.puts("sending from sd card\r\n"); adf_SND_SDCard; } - + +//Timeout ADF_non_responsive_timeout; +//bool ADF_non_responsive_flag = false; +// +//void ADF_non_responsive_fun(){ +// ADF_non_responsive_flag = true; +// gCOM_MNG_TMTC_THREAD->signal_set(signal); +//} void adf_not_SDcard(){ buffer_state = true; @@ -523,23 +535,31 @@ initial_adf_check; initiate; send_data; + +// gPC.puts("Inside adf transmission\r\n"); +// ADF_non_responsive_timeout.attach(&ADF_non_responsive_fun, 10); while(loop_on){ - led2=!led2; Thread::signal_wait(COM_MNG_TMTC_SIGNAL_ADF_NSD); - 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; - }else{ - write_data; - snd_tm.transmit_data(buffer_112,&last_buffer); - } +// if( ADF_non_responsive_flag == false ){ + 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; + }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