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: FreescaleIAP SimpleDMA mbed-rtos mbed
Fork of CDMS_CODE by
adf.h
00001 //without reset feature , with state checks. 00002 00003 #ifndef ADF_H // To make sure you don't declare the function more than once by including the header multiple times. 00004 #define ADF_H 00005 00006 InterruptIn IRQ(ADF_IRQ); 00007 //Ticker ticker; 00008 #include "OBSRS.h" 00009 bool loop_on; 00010 bool ADF_off; 00011 bool buffer_state; 00012 bool finish_write_data; 00013 uint8_t signal = 0x00; 00014 unsigned char bbram_buffer[66]={0x19,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0xFB,0xC2,0x10,0xC0,0x00,0x30,0x31,0x07,0x00,0x01,0x00,/*PA Level Byte*/0x57/*PA Parameters*/,0x08/*GMSK_modulation*/,0x0B,0x37,0x00,0x00,0x40,0x0C,0x00,0x05,0x00,0x00,0x18,0x12,0x34,0x56,0x20,0x10,0xC4,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xE0,0x00,0x10,0x04,0x00,0x00,0x00,0x00,0x00}; 00015 bool data_irq_err=0; 00016 bool data_err= false; 00017 unsigned char temp_byte=0x00; 00018 unsigned char data_err1[112]; 00019 unsigned char data_err_cnt=0; 00020 unsigned int byte_count =0; 00021 #define DATA_ERR_THRS 20 00022 bool rolling_buffer_settings_error=true; 00023 bool bbram_write_success=true; 00024 int bbram_err_cnt=0; 00025 int rbp_err_cnt=0; 00026 bool reset_flag=false; 00027 #define RBP_THRS 4 00028 bool quit_configuration=false; 00029 bool power_reset_flag=false; 00030 unsigned int power_reset_count=0; 00031 bool Configuration_done=false; 00032 #define HW_THRS 2 00033 bool hw_reset_flag = false; 00034 uint8_t firstbyte; 00035 uint8_t secondbyte; 00036 unsigned char buffer_112[112]; 00037 //ADF temperature reading 00038 #define temp_correction_value 0 00039 00040 #define TRANSMIT_LEN_1 0xFF 00041 #define TRANSMIT_LEN_2 0xFF 00042 /***/ 00043 Timer T; 00044 00045 #define START_ADDRESS 0x020; 00046 #define MISO_PIN PTE3 00047 /**************Defining Counter Limits**************/ 00048 #define THRS 20 00049 #define STATE_ERR_THRS 20 00050 #define PHY_OFF_EXEC_TIME 300 00051 #define PHY_ON_EXEC_TIME 300 00052 #define PHY_TX_EXEC_TIME 600 00053 /******DEFINING COMMANDS*********/ 00054 #define CMD_HW_RESET 0xC8 00055 #define CMD_PHY_ON 0xB1 00056 #define CMD_PHY_OFF 0xB0 00057 #define CMD_PHY_TX 0xB5 00058 #define CMD_CONFIG_DEV 0xBB 00059 /**STATES**/ 00060 //======================= 00061 #define PHY_OFF 0xB1 00062 #define PHY_ON 0xB2 00063 #define PHY_TX 0xB4 00064 #define BUSY 0x00 00065 //=================================================== 00066 00067 #define POWER_RESET_THRS 2 00068 #define HW_RESET_THRS 2 00069 00070 unsigned int Adf_data_counter=0; 00071 unsigned char status =0; 00072 unsigned int cmd_err_cnt=0; 00073 unsigned int data_length; 00074 unsigned int state_err_cnt=0; 00075 unsigned int miso_err_cnt=0; 00076 unsigned int hw_reset_err_cnt=0; 00077 unsigned int counter =0; 00078 bool temp_return = 0; 00079 bool bcn_flag=0; 00080 bool bbram_flag=0; 00081 bool last_buffer =0; 00082 bool stop_transmission=false; 00083 00084 #define reset_flags {\ 00085 finish_write_data = false;\ 00086 buffer_state = true;\ 00087 last_buffer = false;\ 00088 loop_on = true;\ 00089 ADF_off = false;\ 00090 buffer_state = true;\ 00091 loop_on = true;\ 00092 ADF_off = false;\ 00093 /*sent_tmfrom_SDcard = false;*/\ 00094 Adf_data_counter=0;\ 00095 status =0;\ 00096 cmd_err_cnt=0;\ 00097 data_length;\ 00098 state_err_cnt=0;\ 00099 miso_err_cnt=0;\ 00100 hw_reset_err_cnt=0;\ 00101 counter =0;\ 00102 bcn_flag=0;\ 00103 bbram_flag=0;\ 00104 stop_transmission=false;\ 00105 } 00106 00107 00108 int err_arr[64]; 00109 bool bbram_err=false; 00110 int err_idx=-1; 00111 int err[64]; 00112 #define bbram_check gCS_ADF=0;\ 00113 for(int i=0;i<64;i++){\ 00114 err_arr[i]=0;\ 00115 }\ 00116 for(int i=0;i<64;i++){\ 00117 err[i]=0;\ 00118 }\ 00119 bbram_err=false;\ 00120 gCS_ADF=0;\ 00121 spi.write(0x39);\ 00122 spi.write(0x00);\ 00123 spi.write(0xFF);\ 00124 for(int i=0;i<64;i++){\ 00125 err_arr[i]=spi.write(0xFF);\ 00126 if(err_arr[i]!=bbram_buffer[i+2]){\ 00127 err[i]=1;\ 00128 bbram_err=true;\ 00129 }\ 00130 }\ 00131 gCS_ADF=1;\ 00132 if(!bbram_err)\ 00133 /*gPC.printf("BBRAM verified \r\n")*/;\ 00134 else\ 00135 gPC.printf("BBRAM error \r\n");\ 00136 00137 00138 bool tx_loop=1; 00139 00140 #define PRNT_ONCE {\ 00141 gPC.printf("%d %d lol_ what?\r\n",segment_len,EOS_len);\ 00142 } 00143 00144 #define bbram_write {\ 00145 gCS_ADF=0;\ 00146 spi.write(0xB0);\ 00147 wait_us(300);\ 00148 gCS_ADF=1;\ 00149 gCS_ADF=0;\ 00150 for(int i=0;i<66;i++){\ 00151 spi.write(bbram_buffer[i]);\ 00152 }\ 00153 gCS_ADF=1;\ 00154 } 00155 //------------------------------------------------------------------------ 00156 // state checking functions 00157 //bool assrt_phy_off( int, int, int); 00158 //bool assrt_phy_on( int,int,int); 00159 //bool assrt_phy_tx(int,int,int); 00160 00161 #define check_status {\ 00162 unsigned char stat=0;\ 00163 gCS_ADF=0;\ 00164 spi.write(0xFF);\ 00165 stat = spi.write(0xFF);\ 00166 gCS_ADF=1;\ 00167 status = stat;\ 00168 } 00169 /***********************/ 00170 /**********Restart ADF**************/ 00171 00172 /**************************/ 00173 00174 /*CMD_VAR*/ 00175 bool cmd_bit=true; 00176 bool cmd_err_flag=false; 00177 unsigned char command = 0x00; 00178 void CMD(uint8_t command) { 00179 cmd_err_cnt=0; 00180 cmd_err_flag=false; 00181 while(cmd_err_cnt<3) { 00182 check_status; 00183 cmd_bit=status&0x20; 00184 if(cmd_bit) { 00185 gCS_ADF=0; 00186 spi.write(command); 00187 gCS_ADF=1; 00188 break; 00189 } else { 00190 wait_us(5); 00191 cmd_err_cnt++; 00192 } 00193 } 00194 if(cmd_err_cnt==3) { 00195 cmd_err_flag=true; 00196 } 00197 } 00198 00199 // all three arguments are int 00200 #define assrt_phy_off {\ 00201 int state_err_cnt = 0;\ 00202 CMD(CMD_PHY_OFF);\ 00203 if(cmd_err_flag){\ 00204 temp_return=1;\ 00205 }\ 00206 else{\ 00207 for(int i = 0 ; i < 40 ;i++){\ 00208 CMD(CMD_PHY_OFF);\ 00209 check_status;\ 00210 if(status == PHY_OFF){\ 00211 temp_return = 0;\ 00212 break;\ 00213 }\ 00214 else if(state_err_cnt>THRS){\ 00215 temp_return = 1;\ 00216 break;\ 00217 }\ 00218 else {\ 00219 wait_ms(1);\ 00220 }\ 00221 }\ 00222 }\ 00223 } 00224 00225 bool dummy_digitalOut_1=0; 00226 #define power_reset{\ 00227 dummy_digitalOut_1=0;\ 00228 wait_ms(10);\ 00229 dummy_digitalOut_1=1;\ 00230 power_reset_flag=false;\ 00231 power_reset_count++;\ 00232 wait_ms(10);\ 00233 }\ 00234 00235 void get_temp_and_txcurr(){ 00236 /*ADF Temperature reading*/; 00237 gCS_ADF=0; 00238 spi.write(0x1B); 00239 spi.write(0x24); 00240 spi.write(0x10); 00241 gCS_ADF=1; 00242 gCS_ADF=0; 00243 spi.write(0x1B); 00244 spi.write(0x25); 00245 spi.write(0x02); 00246 gCS_ADF=1; 00247 gCS_ADF=0; 00248 spi.write(0x1B); 00249 spi.write(0x59); 00250 spi.write(0x08); 00251 gCS_ADF=1; 00252 00253 gCS_ADF=0; 00254 spi.write(0x3B); 00255 spi.write(0x27); 00256 spi.write(0xFF); 00257 secondbyte = spi.write(0xFF); 00258 gCS_ADF=1; 00259 gCS_ADF=0; 00260 spi.write(0x3B); 00261 spi.write(0x28); 00262 spi.write(0xFF); 00263 firstbyte = spi.write(0xFF); 00264 gCS_ADF=1; 00265 gCS_ADF=0; 00266 spi.write(0x3B); 00267 spi.write(0x27); 00268 spi.write(0xFF); 00269 secondbyte = spi.write(0xFF); 00270 gCS_ADF=1; 00271 00272 COM_ADF_TMP = firstbyte & 0x03; 00273 COM_ADF_TMP |= secondbyte & 0xfc; 00274 COM_ADF_TMP = 0.9474*(COM_ADF_TMP - 28) +28.2; 00275 00276 gPC.printf("\n\rCOM_ADF_TMP : %d \n",COM_ADF_TMP); 00277 /*uint8_t txcurr = (3.3*COM_TX_OC_FAULT)/(0.05)*100;*/// ID_current 00278 00279 00280 00281 } 00282 00283 void get_com_oc_sw_status() 00284 { 00285 COM_OC_SET = 1; 00286 if (COM_TX_OC_FAULT){\ 00287 com_oc_sw_status = 0x1;\ 00288 }\ 00289 else{\ 00290 com_oc_sw_status = 0;\ 00291 }\ 00292 } 00293 00294 bool hardware_reset(int bcn_call) 00295 { 00296 if(hw_reset_err_cnt>HW_RESET_THRS){ 00297 power_reset_flag=true; 00298 power_reset; 00299 return 0; 00300 } 00301 00302 for(int i= 0; i < 2 ; i++) { 00303 gCS_ADF=0; 00304 spi.write(CMD_HW_RESET); 00305 gCS_ADF=1; 00306 wait_ms(2);// Typically 1 ms 00307 int count=0; 00308 temp_return = 0; 00309 while(count<10 && miso_err_cnt<10) { 00310 if(MISO_PIN) { 00311 // assrt_phy_off; 00312 /*asseert_phyoff Starts**/ 00313 {\ 00314 int state_err_cnt = 0;\ 00315 CMD(CMD_PHY_OFF);\ 00316 if(cmd_err_flag){\ 00317 temp_return=1;\ 00318 }\ 00319 else{\ 00320 for(int i = 0 ; i < 40 ;i++){\ 00321 CMD(CMD_PHY_OFF);\ 00322 check_status;\ 00323 if(status == PHY_OFF){\ 00324 temp_return = 0;\ 00325 break;\ 00326 }\ 00327 else if(state_err_cnt>THRS){\ 00328 temp_return = 1;\ 00329 break;\ 00330 }\ 00331 else {\ 00332 wait_ms(1);\ 00333 }\ 00334 }\ 00335 }\ 00336 }\ 00337 /*Assert_phy_off_ends*/ 00338 00339 00340 00341 00342 00343 if(!temp_return){ 00344 return 0; 00345 } 00346 count++; 00347 } else { 00348 wait_us(50); 00349 miso_err_cnt++; 00350 } 00351 } 00352 } 00353 return 1; 00354 } 00355 //for reseting the transmission call assert function after b5 and b1. after b1 assert_phi_on and after b5 assert_phi_tx. 00356 //---------------------------------------------------------------------------- 00357 unsigned char temp; 00358 bool reg_err; 00359 int reg_err_cnt; 00360 #define REG_ERR_THRS 5 00361 #define reg_check(addr1,addr2,reg_val){\ 00362 gCS_ADF=0;\ 00363 reg_err=false;\ 00364 spi.write(addr1);\ 00365 spi.write(addr2);\ 00366 spi.write(0xFF);\ 00367 temp = spi.write(0xFF);\ 00368 if(temp==reg_val)\ 00369 reg_err = false;\ 00370 else\ 00371 reg_err=true;\ 00372 gCS_ADF=1;\ 00373 } 00374 00375 #define initiate {\ 00376 gCS_ADF=0;\ 00377 spi.write(0xFF);\ 00378 spi.write(0xFF);\ 00379 gCS_ADF=1;\ 00380 reg_err=true;\ 00381 for(reg_err_cnt=0;reg_err_cnt<REG_ERR_THRS && reg_err;reg_err_cnt++){\ 00382 gCS_ADF=0;\ 00383 spi.write(0x08);\ 00384 spi.write(0x14);\ 00385 spi.write(TRANSMIT_LEN_1);\ 00386 gCS_ADF=1;\ 00387 reg_check(0x28,0x14,TRANSMIT_LEN_1);\ 00388 }\ 00389 if(reg_err)\ 00390 gPC.printf("Reg_err_ignored %x \r\n",(int)temp);\ 00391 else\ 00392 /*gPC.printf("reg written successful %x \r\n",(int)temp)*/;\ 00393 reg_err=true;\ 00394 for(reg_err_cnt=0;reg_err_cnt<REG_ERR_THRS && reg_err;reg_err_cnt++){\ 00395 gCS_ADF=0;\ 00396 spi.write(0x08);\ 00397 spi.write(0x15);\ 00398 spi.write(TRANSMIT_LEN_2);\ 00399 gCS_ADF=1;\ 00400 reg_check(0x28,0x15,TRANSMIT_LEN_2);\ 00401 }\ 00402 if(reg_err)\ 00403 gPC.printf("Reg_err_ignored %x \r\n",(int)temp);\ 00404 else\ 00405 gPC.printf("reg written successful %x \r\n",(int)temp);\ 00406 } 00407 00408 #define write_data {\ 00409 counter++;\ 00410 if(counter==584){\ 00411 finish_write_data=true;\ 00412 restart_adf_flag=true;\ 00413 counter=0;\ 00414 }\ 00415 gCS_ADF=0;\ 00416 spi.write(0x0B);\ 00417 spi.write(0x36);\ 00418 spi.write(0xFF);\ 00419 gCS_ADF=1;\ 00420 data_err_cnt=0;\ 00421 data_err=true;\ 00422 while(data_err && (data_err_cnt<DATA_ERR_THRS)){\ 00423 gCS_ADF=0;\ 00424 if(buffer_state){\ 00425 spi.write(0x18);\ 00426 spi.write(0x20);\ 00427 for(unsigned char i=0; i<112;i++){\ 00428 spi.write(buffer_112[i]);\ 00429 /*gPC.printf("0x%X,",spi.write(buffer_112[i]));*/\ 00430 }\ 00431 }\ 00432 else{\ 00433 spi.write(0x18);\ 00434 spi.write(0x90);\ 00435 for(unsigned char i=0; i<112;i++){\ 00436 spi.write(buffer_112[i]);\ 00437 /*gPC.printf("0x%X,",spi.write(buffer_112[i]));*/\ 00438 }\ 00439 }\ 00440 gCS_ADF=1;\ 00441 wait_us(5);\ 00442 data_err=false;\ 00443 gCS_ADF=0;\ 00444 spi.write(0x38);\ 00445 if(buffer_state){\ 00446 spi.write(0x20);\ 00447 }\ 00448 else{\ 00449 spi.write(0x90);\ 00450 }\ 00451 spi.write(0xFF);\ 00452 for(unsigned char i=0; i<112;i++){\ 00453 temp_byte=spi.write(0xFF);\ 00454 if(buffer_112[i]!=temp_byte){\ 00455 data_err1[i]=1;\ 00456 data_err=true;\ 00457 }\ 00458 }\ 00459 gCS_ADF=1;\ 00460 /*SPI_mutex.unlock();*/\ 00461 if(data_err==false){\ 00462 buffer_state = !buffer_state;\ 00463 }\ 00464 data_err_cnt++;\ 00465 if(last_buffer){\ 00466 finish_write_data = true;\ 00467 /*gPC.puts("adf_off\r\n");*/\ 00468 }\ 00469 }\ 00470 } 00471 00472 #define check {\ 00473 check_status;\ 00474 /*gPC.printf("I 0x%X\r\n",(int)status);*/\ 00475 if(IRQ){\ 00476 get_com_oc_sw_status();\ 00477 /*gPC.printf("det\r\n");*/\ 00478 if(!ADF_off) {\ 00479 if(finish_write_data || restart_adf_flag) {\ 00480 write_data;\ 00481 ADF_off=true;\ 00482 T.stop();\ 00483 T.reset();\ 00484 T.start();\ 00485 /*ADF Temperature reading*/;\ 00486 get_temp_and_txcurr();\ 00487 } else {\ 00488 T.stop();\ 00489 T.reset();\ 00490 T.start();\ 00491 write_data;\ 00492 if(sent_tmfrom_SDcard)\ 00493 send_tm_from_SD_card_fun(buffer_112,last_buffer);\ 00494 else snd_tm.transmit_data(buffer_112,&last_buffer);\ 00495 }\ 00496 } else {\ 00497 wait_ms(20);\ 00498 gCS_ADF=0;\ 00499 spi.write(0xB1);\ 00500 gCS_ADF=1;\ 00501 gPC.puts("transmission done\r\n");\ 00502 /*gPC.printf("Time taken by last write_data %f msecs\n", T.read_ms())*/;\ 00503 T.stop();\ 00504 T.reset();\ 00505 loop_on=false;\ 00506 if(restart_adf_flag)\ 00507 {\ 00508 restart_adf_flag=false;\ 00509 ADF_off=false;\ 00510 send_data;\ 00511 loop_on=true;\ 00512 CMD(CMD_PHY_TX);\ 00513 wait_us(2000);\ 00514 }\ 00515 }\ 00516 }\ 00517 else{\ 00518 if(T.read_us()>98000){\ 00519 data_irq_err=true;\ 00520 CMD(CMD_PHY_ON);\ 00521 gPC.printf("Data_error_detected");\ 00522 T.stop();\ 00523 T.reset();\ 00524 }\ 00525 }\ 00526 } 00527 00528 #define send_data {\ 00529 gCS_ADF=0;\ 00530 spi.write(0xBB);\ 00531 gCS_ADF=1;\ 00532 gCS_ADF=0;\ 00533 spi.write(0xFF);\ 00534 spi.write(0xFF);\ 00535 gCS_ADF=1;\ 00536 if(sent_tmfrom_SDcard){\ 00537 send_tm_from_SD_card_fun(buffer_112,last_buffer);\ 00538 }else{\ 00539 snd_tm.transmit_data(buffer_112,&last_buffer);\ 00540 }\ 00541 write_data;\ 00542 if(sent_tmfrom_SDcard){\ 00543 send_tm_from_SD_card_fun(buffer_112,last_buffer);\ 00544 }else{\ 00545 snd_tm.transmit_data(buffer_112,&last_buffer);\ 00546 }\ 00547 write_data;\ 00548 if(sent_tmfrom_SDcard){\ 00549 send_tm_from_SD_card_fun(buffer_112,last_buffer);\ 00550 }else{\ 00551 snd_tm.transmit_data(buffer_112,&last_buffer);\ 00552 }\ 00553 gCS_ADF=0;\ 00554 spi.write(0xB1);\ 00555 gCS_ADF=1;\ 00556 wait_us(300);\ 00557 gCS_ADF=0;\ 00558 spi.write(0xFF);\ 00559 spi.write(0xFF);\ 00560 gCS_ADF=1;\ 00561 gCS_ADF=0;\ 00562 spi.write(0xB5);\ 00563 gCS_ADF=1;\ 00564 wait_us(300);\ 00565 gCS_ADF=0;\ 00566 spi.write(0xFF);\ 00567 spi.write(0xFF);\ 00568 gCS_ADF=1;\ 00569 } 00570 00571 #define initial_adf_check {\ 00572 bool Configuration_Done=false;\ 00573 quit_configuration=false;\ 00574 bool reset_flag1 = 0;\ 00575 bool flag = false;\ 00576 while((hw_reset_err_cnt<HW_THRS)&&(quit_configuration==false)){\ 00577 while((bbram_err_cnt<2)&&(quit_configuration==false)){\ 00578 /*assrt_phy_off;*/\ 00579 /*Assrt_phy_off Begin*/\ 00580 {\ 00581 int state_err_cnt = 0;\ 00582 CMD(CMD_PHY_OFF);\ 00583 if(cmd_err_flag){\ 00584 temp_return=1;\ 00585 }\ 00586 else{\ 00587 for(int i = 0 ; i < 40 ;i++){\ 00588 CMD(CMD_PHY_OFF);\ 00589 check_status;\ 00590 if(status == PHY_OFF){\ 00591 temp_return = 0;\ 00592 break;\ 00593 }\ 00594 else if(state_err_cnt>THRS){\ 00595 temp_return = 1;\ 00596 break;\ 00597 }\ 00598 else {\ 00599 wait_ms(1);\ 00600 }\ 00601 }\ 00602 }\ 00603 }\ 00604 /*Assrt_phy_off end*/\ 00605 reset_flag1=temp_return;\ 00606 if(!reset_flag1){\ 00607 bbram_write;\ 00608 while((rbp_err_cnt<RBP_THRS)&&(quit_configuration==false)){\ 00609 bbram_check;\ 00610 if(bbram_err==0){\ 00611 bbram_write_success=true;\ 00612 bbram_err_cnt=0;\ 00613 initiate;\ 00614 if(reg_err){\ 00615 rbp_err_cnt++;\ 00616 }\ 00617 else{\ 00618 rbp_err_cnt=0;\ 00619 /*gPC.printf("NO Reg err\r\n")*/;\ 00620 CMD(CMD_CONFIG_DEV);\ 00621 if(cmd_err_flag){\ 00622 reset_flag=1;\ 00623 gPC.printf("CMD ERR\r\n");\ 00624 }\ 00625 else{\ 00626 reset_flag=0;\ 00627 /*gPC.printf("NO CMD ERR CONFIG_DONE\r\n")*/;\ 00628 quit_configuration=true;\ 00629 }\ 00630 }\ 00631 }\ 00632 else{\ 00633 bbram_write_success=false;\ 00634 bbram_err_cnt++;\ 00635 break;\ 00636 }\ 00637 }\ 00638 }\ 00639 else{\ 00640 break;\ 00641 }\ 00642 }\ 00643 if(reset_flag1){\ 00644 hardware_reset(0);\ 00645 hw_reset_err_cnt++;\ 00646 gPC.puts("Resetting hardware\r\n");\ 00647 }\ 00648 }\ 00649 if(hw_reset_err_cnt==HW_THRS){\ 00650 power_reset_flag=1;\ 00651 power_reset_count++;\ 00652 }\ 00653 else{\ 00654 Configuration_Done=true;\ 00655 gPC.printf("Configuration_Done\n");\ 00656 }\ 00657 } 00658 00659 #define configure_adf {\ 00660 reset_flags;\ 00661 initial_adf_check;\ 00662 gPC.puts("Config_part done\r\n");\ 00663 } 00664 00665 void transmit_adf(){ 00666 while(power_reset_count<POWER_RESET_THRS){ 00667 restart_adf_flag=false; 00668 bool tx_err=false; 00669 configure_adf; 00670 send_data; 00671 /*PA MCR level*/; 00672 gCS_ADF=0; 00673 spi.write(0x1B); 00674 spi.write(0x07); 00675 spi.write(0x35); 00676 gCS_ADF=1; 00677 CMD(CMD_PHY_TX); 00678 wait_us(2000); 00679 T.start(); 00680 while(loop_on){ 00681 wait_us(20); 00682 check; 00683 if(data_irq_err||tx_err){ 00684 hw_reset_err_cnt++; 00685 hw_reset_flag=true; 00686 break; 00687 } 00688 } 00689 if(hw_reset_flag==true){ 00690 hardware_reset(0); 00691 } 00692 else{ 00693 break; 00694 } 00695 gPC.puts("after while looprn"); 00696 } 00697 } 00698 00699 #endif
Generated on Tue Jul 26 2022 00:15:16 by
