ADC logging with demo drive board for calibration ADC read synchronised with heater on time

Dependencies:   mbed MODSERIAL FastPWM ADS8568_ADC

Revision:
26:323238949f9d
Parent:
25:f507cfd50fcc
Child:
27:505c1565c076
--- a/main.cpp	Wed Oct 09 17:36:51 2019 +0000
+++ b/main.cpp	Thu Oct 10 13:03:16 2019 +0000
@@ -7,7 +7,7 @@
 #define LOG_INTERVAL   1000  // log file interval (ms)
 #define START_DELAY    1000  // pause for startup (ms)
 #define N_STEPS         100
-#define N_READ           10
+#define N_READ            4
 #define BUFFER_SIZE    4096
 
 //UID lookup address and pointer
@@ -72,30 +72,16 @@
     pc.baud(115200);
     adc.init();
     
-    // External LED off
-    led_ext = 0;
     
     // Initialsation - all heaters off
     drive_1 = 0;
     drive_2 = 0;
     guard_1 = 0;
     guard_2 = 0;
-//    drive_1.prescaler(1);
-//    drive_1.period_ticks(1000);
-//    drive_1.pulsewidth_ticks(0);
-
-//    guard_1.prescaler(1);
-//    guard_1.period_ticks(1000);
-//    guard_1.pulsewidth_ticks(0);
+   
+    // External LED off
+    led_ext = 0;
 
-//    drive_2.prescaler(1);
-//    drive_2.period_ticks(1000);
-//    drive_2.pulsewidth_ticks(0);
-
-//    guard_2.prescaler(1);
-//    guard_2.period_ticks(1000);
-//    guard_2.pulsewidth_ticks(0);
-   
     pc.printf("\r\nUnique ID: %08X %08X %08X \r\n", uid[0], uid[1], uid[2]);   
     int i_board = -1;  
     for (int i = 0; i < UID_TABLE_LENGTH; i++)
@@ -110,34 +96,32 @@
     if (i_board != -1) pc.printf("Drive board: Board %d\n",drive_board_serial_number[i_board]);
     else pc.printf("Drive board UID match not found\n");
 
-    pc.printf("iStep,      eTime,        I1,         V1,     R1_adc,     R1_ohm,       I2,         V2,     R2_adc,     R2_ohm\n");
+    pc.printf("MEAS_DELAY: %d\n",MEAS_DELAY);
+    pc.printf("N_READ: %d\n",N_READ);
+
+    pc.printf("iStep,      eTime,         I1,         V1,     R1_adc,     R1_ohm,         I2,         V2,     R2_adc,     R2_ohm\n");
     
     wait_ms(START_DELAY);
     timer.start();
 
-    for (int iDelay = 1; iDelay < 3; iDelay++) {
-
     for (int iStep=0; iStep<N_STEPS; iStep++) {
 
         eTime = timer.read_ms();
-        pc.printf("%5d, %10d,", iDelay, eTime);
 
         for (int iHeater=0; iHeater <2; iHeater++) {
             // measure heater
             if (iHeater==0) {
-//                drive_1.pulsewidth_ticks(1000);
                   drive_1 = 1;
                   led_0 = 1;
                   led_1 = 0;
             }
             else {
-//                drive_2.pulsewidth_ticks(1000);
                   drive_2 = 1;
                   led_0 = 0;
                   led_1 = 1;
             }
             
-            wait_us(MEAS_DELAY*iDelay);
+            wait_us(MEAS_DELAY);
         
             //Average N_READ ADC cycles
             curr[iHeater] = 0;
@@ -159,14 +143,12 @@
             
             //Turn off heater
             if (iHeater==0)
-//                drive_1.pulsewidth_ticks(0);
                   drive_1 = 0;
             else
-//                drive_2.pulsewidth_ticks(0);
                   drive_2 = 0;
             
             
-            wait_us(MEAS_DELAY*iDelay);
+            wait_us(MEAS_DELAY);
         
             //Calculate resistance
             r_adc[iHeater] = (float)v[iHeater]/(float)curr[iHeater];
@@ -175,17 +157,11 @@
             else
                 r_ohm[iHeater] = 0.0;
                 
-
-            //Write output for iHeater
-            pc.printf("%10d, %10d, %10.6f, %10.6f,", curr[iHeater], v[iHeater], r_adc[iHeater], r_ohm[iHeater]);
-
-            //Wait before drivinng other heater
+            //Wait before driving other heater
             wait_ms(LOG_INTERVAL/2);
 
         }
-        pc.printf("\n");    
-    }
-    
+        pc.printf("%5d, %10d, %10d, %10d, %10.6f, %10.6f, %10d, %10d, %10.6f, %10.6f\n", iStep, eTime, curr[0], v[0], r_adc[0], r_ohm[0], curr[1], v[1], r_adc[1], r_ohm[1]);
     }
 
     // turn everything off