working version

Dependencies:   mbed mbed-rtos SimpleDMA FreescaleIAP eeprom

Fork of CDMS_CODE_FM_28JAN2017 by samp Srinivasan

Revision:
356:197c93dc2012
Parent:
354:eb6c863756a8
Child:
357:f3d48d62e00e
--- a/adf.h	Tue Mar 28 08:50:07 2017 +0000
+++ b/adf.h	Sat Feb 10 09:06:26 2018 +0000
@@ -34,6 +34,8 @@
 uint8_t firstbyte;
 uint8_t secondbyte;
 unsigned char buffer_112[112];
+int loop_conter = 0;
+int loop_cntr = 0;
 //ADF temperature reading
 #define temp_correction_value 0
 
@@ -460,8 +462,8 @@
     /*SPI_mutex.unlock();*/\
     if(data_err==false){\
     buffer_state = !buffer_state;\
+        data_err_cnt++;\
     }\
-    data_err_cnt++;\
     if(last_buffer){\
         finish_write_data = true;\
            /*gPC.puts("adf_off\r\n");*/\
@@ -489,8 +491,9 @@
                 T.reset();\
                 T.start();\
                 write_data;\
-                if(sent_tmfrom_SDcard)\
+                if(sent_tmfrom_SDcard){\
                 send_tm_from_SD_card_fun(buffer_112,last_buffer);\
+                }\
                 else snd_tm.transmit_data(buffer_112,&last_buffer);\
             }\
         } else {\
@@ -623,6 +626,8 @@
                             if(cmd_err_flag){\
                                 reset_flag=1;\
                                 gPC.printf("CMD ERR\r\n");\
+                                loop_cntr++;\
+                                if (loop_cntr > 30){loop_cntr = 0;break;}\
                             }\
                             else{\
                                 reset_flag=0;\
@@ -669,9 +674,11 @@
 void transmit_adf(){
     configure =true;
     
+    
 while(retransmit||configure){
     configure =0;
     retransmit=0;
+    loop_conter = 0;//to prevent from going into infinite while loop
 while(power_reset_count<POWER_RESET_THRS){     
     restart_adf_flag=false;
     bool tx_err=false;
@@ -682,7 +689,8 @@
         spi.write(0x1B);
         spi.write(0x07);
    //     spi.write(0x35);
-    spi.write(0x36);
+   // spi.write(0x36);
+    spi.write(0x38);  //PA Output = 30.8
         gCS_ADF=1;
     CMD(CMD_PHY_TX);
     wait_us(2000);
@@ -703,6 +711,8 @@
         break;
     }
     gPC.puts("after while looprn");
+    loop_conter++;
+    if (loop_conter > 2){break;gPC.printf("\nERROR: TM DROPPED");}//to prevent from going into infinite while loop
     
 }
 if(restart_adf_flag){
@@ -710,6 +720,14 @@
         restart_adf_flag=false;
         }
 }
-
+if(ack_head != NULL){
+while(ack_head != NULL){
+                           
+                           Base_tm *temp_pointer = ack_head->next_TM;
+                           delete ack_head;
+//                           gPC.printf("deleting stuff\n\r");
+                           ack_head = temp_pointer;
+                        }                        
+                        }
 }
 #endif
\ No newline at end of file