Latest FM Code with EEPROM
Dependencies: FreescaleIAP SimpleDMA eeprom mbed-rtos mbed
Fork of CDMS_QM_03MAR2017_Flash_with_obsrs by
Diff: adf.h
- Revision:
- 271:72529b247333
- Parent:
- 268:ded5306a1fd1
- Child:
- 286:0f3a2a7ac295
--- a/adf.h Wed Jul 20 09:58:59 2016 +0000 +++ b/adf.h Thu Jul 21 13:18:02 2016 +0000 @@ -85,7 +85,7 @@ buffer_state = true;\ loop_on = true;\ ADF_off = false;\ -sent_tmfrom_SDcard = false;\ +/*sent_tmfrom_SDcard = false;*/\ Adf_data_counter=0;\ status =0;\ cmd_err_cnt=0;\ @@ -161,32 +161,37 @@ gCS_ADF=1;\ status = stat;\ } +/***********************/ +/**********Restart ADF**************/ + +/**************************/ /*CMD_VAR*/ bool cmd_bit=true; bool cmd_err_flag=false; unsigned char command = 0x00; -#define CMD(command) {\ - cmd_err_cnt=0;\ - cmd_err_flag=false;\ - while(cmd_err_cnt<3) {\ - check_status;\ - cmd_bit=status&0x20;\ - if(cmd_bit) {\ - gCS_ADF=0;\ - spi.write(command);\ - gCS_ADF=1;\ - break;\ - } else {\ - wait_us(5);\ - cmd_err_cnt++;\ - }\ - }\ - if(cmd_err_cnt==3) {\ - cmd_err_flag=true;\ - }\ +void CMD(uint8_t command) { + cmd_err_cnt=0; + cmd_err_flag=false; + while(cmd_err_cnt<3) { + check_status; + cmd_bit=status&0x20; + if(cmd_bit) { + gCS_ADF=0; + spi.write(command); + gCS_ADF=1; + break; + } else { + wait_us(5); + cmd_err_cnt++; + } + } + if(cmd_err_cnt==3) { + cmd_err_flag=true; + } } -// all three arguments are int\ + +// all three arguments are int #define assrt_phy_off {\ int state_err_cnt = 0;\ CMD(CMD_PHY_OFF);\ @@ -323,6 +328,11 @@ #define write_data {\ counter++;\ + if(counter==584){\ + finish_write_data=true;\ + restart_adf_flag=true;\ + counter=0;\ + }\ gCS_ADF=0;\ spi.write(0x0B);\ spi.write(0x36);\ @@ -336,9 +346,6 @@ spi.write(0x18);\ spi.write(0x20);\ for(unsigned char i=0; i<112;i++){\ - if(bypass_adf)\ - gPC.putc(buffer_112[i]);\ - else\ spi.write(buffer_112[i]);\ /*gPC.printf("0x%X,",spi.write(buffer_112[i]));*/\ }\ @@ -347,9 +354,6 @@ spi.write(0x18);\ spi.write(0x90);\ for(unsigned char i=0; i<112;i++){\ - if(bypass_adf)\ - gPC.putc(buffer_112[i]);\ - else\ spi.write(buffer_112[i]);\ /*gPC.printf("0x%X,",spi.write(buffer_112[i]));*/\ }\ @@ -389,10 +393,10 @@ #define check {\ check_status;\ /*gPC.printf("I 0x%X\r\n",(int)status);*/\ - if(IRQ || bypass_adf){\ + if(IRQ){\ /*gPC.printf("det\r\n");*/\ if(!ADF_off) {\ - if(finish_write_data) {\ + if(finish_write_data || restart_adf_flag) {\ write_data;\ ADF_off=true;\ } else {\ @@ -408,15 +412,25 @@ gCS_ADF=1;\ gPC.puts("transmission done\r\n");\ loop_on=false;\ + if(restart_adf_flag)\ + {\ + restart_adf_flag=false;\ + ADF_off=false;\ + send_data;\ + loop_on=true;\ + CMD(CMD_PHY_TX);\ + wait_us(2000);\ + }\ + /*Stop_the_Timer*/\ }\ }\ - else{\ - if(T.read_us()>98000){\ - data_irq_err=true;\ - CMD(CMD_PHY_ON);\ - gPC.printf("Data_error_detected");\ - }\ - }\ + /*else{*/\ + /*if(T.read_us()>98000){*/\ + /*data_irq_err=true;*/\ + /*CMD(CMD_PHY_ON);*/\ + /*gPC.printf("Data_error_detected");*/\ + /*}*/\ + /*}*/\ } #define send_data {\ @@ -557,6 +571,8 @@ } #define transmit_adf {\ + restart_adf_flag=false;\ + bool tx_err=false;\ configure_adf;\ send_data;\ CMD(CMD_PHY_TX);\ @@ -564,10 +580,9 @@ while(loop_on){\ wait_us(20);\ check;\ - if(data_irq_err){\ + if(data_irq_err||tx_err){\ break;\ }\ }\ /*gPC.puts("after while loop\r\n");*/\ } -