test AnalogIn_Diff.lib for board K64F

Dependencies:   AnalogIn_Diff_ok mbed

Revision:
3:f1ab02bc87f3
Parent:
2:bf4f474ff746
Child:
4:bcd2a4b5feaf
--- a/main.cpp	Fri Jul 11 13:01:16 2014 +0000
+++ b/main.cpp	Wed Jul 16 14:39:09 2014 +0000
@@ -1,16 +1,26 @@
 #include "mbed.h"
 #include "math.h"
 #include "MovingAverage.h"
-#define VERSION "11_07_2014"
+#define VERSION "15_07_2014"
 #define CIBLE "K64F"
 //USBSerial pc;
 #define max(a,b) (a>=b?a:b)
 #define min(a,b) (a<=b?a:b)
+#define UAC_NON 230.0
+#define UAC_MAX UAC_NON*1.1
+#define UAC_MIN UAC_NON*0.9
+#define UAC_NON2 UAC_NON*UAC_NON
+#define UAC_MAX2 UAC_MAX*UAC_MAX
+#define UAC_MIN2 UAC_MIN*UAC_MIN
 struct {
    float   gain;
     float   offset;
 //AnalogIn adc;
 } adc_volt,adc_curr;
+Timer timer_min;
+bool F_timer_min=false;
+Timer timer_max;
+bool F_timer_max=false;
 Serial pc(USBTX, USBRX);
 AnalogIn adc_1(PTB2);
 AnalogIn adc_2(PTB3);
@@ -18,8 +28,8 @@
 DigitalOut led1(LED_RED);
 DigitalOut led2(LED_GREEN);
 DigitalOut led3(LED_BLUE);
-MovingAverage<float> Trms(100,230);
-MovingAverage<float> moy(100,0);
+MovingAverage<float> Trms(20,UAC_NON);
+MovingAverage<float> moy(20,0);
 float min=250000;
 float max=0;
 bool min_OK=false;
@@ -36,6 +46,29 @@
     max=max(val,max);
     if(min_OK==true)
         min=min(val,min);
+    if(val<UAC_MIN2 && F_timer_min ==false)
+    {
+        timer_min.reset();
+        timer_min.start();
+        F_timer_min = true;  
+    }
+    if(val>UAC_MIN2 && F_timer_min ==true)
+    {
+        timer_min.stop();
+        F_timer_min = false;  
+    }
+    if(val>UAC_MAX2 && F_timer_max ==false)
+    {
+        timer_max.reset();
+        timer_max.start();
+        F_timer_max = true;  
+    }
+    if(val<UAC_MAX2 && F_timer_max ==true)
+    {
+        timer_max.stop();
+        
+        F_timer_max = false;  
+    }
     led1=0;
 }
 
@@ -45,11 +78,11 @@
     led2=0;
     led3=1;
     pc.baud(115200);
-    pc.printf("LAAS-CNRS ,HMA ,%s ,%s\r",CIBLE,VERSION);
+    pc.printf("LAAS-CNRS ,TRMS ,%s ,%s\r",CIBLE,VERSION);
     adc_volt.gain=(1960.0*3.3)/65535.0;
     adc_volt.offset=-17.0;
 
-    flipperADC.attach_us(&flipADC, 200); //200µs
+    flipperADC.attach_us(&flipADC, 1000); //200µs
     wait (5);
 min_OK=true;
     while (true) {
@@ -58,7 +91,7 @@
         led3=1;
 
         pc.printf("RMS=%f \r\n",sqrt(Trms.GetAverage()));
-        pc.printf("min=%0.0f max=%0.0f\r\n",sqrt(min),sqrt(max));
+        pc.printf("min=%0.0f t=%f max=%0.0f t=%f\r\n",sqrt(min),timer_min.read(),sqrt(max),timer_max.read());
         pc.printf("moy=%f \r\n",moy.GetAverage());
         led3=0;
         wait (1);