CDMS code for testing sbc

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of CDMS_CODE by shubham c

Revision:
269:72529b247333
Parent:
268:ded5306a1fd1
--- 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");*/\
 }
-