test AnalogIn_Diff.lib for board K64F

Dependencies:   AnalogIn_Diff_ok mbed

Files at this revision

API Documentation at this revision

Comitter:
fblanc
Date:
Thu Jul 10 14:44:30 2014 +0000
Parent:
0:9eeda5b17b5b
Child:
2:bf4f474ff746
Commit message:
min et max OK

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Thu Jul 10 12:22:18 2014 +0000
+++ b/main.cpp	Thu Jul 10 14:44:30 2014 +0000
@@ -2,11 +2,13 @@
 #include "math.h"
 #include "MovingAverage.h"
 //USBSerial pc;
-struct{
-double   gain;
-double   offset;
+#define max(a,b) (a>=b?a:b)
+#define min(a,b) (a<=b?a:b)
+struct {
+    double   gain;
+    double   offset;
 //AnalogIn adc;
-    }adc_volt,adc_curr;
+} adc_volt,adc_curr;
 Serial pc(USBTX, USBRX);
 AnalogIn adc_1(PTB2);
 AnalogIn adc_2(PTB3);
@@ -14,34 +16,46 @@
 DigitalOut led1(LED_RED);
 DigitalOut led2(LED_GREEN);
 DigitalOut led3(LED_BLUE);
-MovingAverage<float> Trms_float(100,0);
-MovingAverage<int> Trms_int(100,0);
-void flipADC() {
+MovingAverage<float> Trms_float(100,230);
+//MovingAverage<int> Trms_int(100,0);
+float min=250000;
+float max=0;
+bool min_OK=false;
+void flipADC()
+{
+    float val;
     led1=1;
     int val_i32=adc_2.read_u16()-adc_1.read_u16(); //read ADC
-    
-    float val=((float)val_i32*adc_volt.gain)-adc_volt.offset;
-    Trms_float.Insert(val*val);
-   led1=0;
-  }
 
-int main() {
-    
-pc.baud(115200);
-adc_volt.gain=3.3/65535.0;
-adc_volt.offset=0.0;
+    val=((float)val_i32*adc_volt.gain)-adc_volt.offset;
+    Trms_float.Insert(val*val);
+    val=Trms_float.GetAverage();
+    max=max(val,max);
+    if(min_OK==true)
+        min=min(val,min);
+    led1=0;
+}
 
-    flipperADC.attach_us(&flipADC, 200); //200µs
-
+int main()
+{
     led1=1;
     led2=0;
     led3=1;
+    pc.baud(115200);
+    adc_volt.gain=129.0*3.3/65535.0;
+    adc_volt.offset=0.0;
+
+    flipperADC.attach_us(&flipADC, 200); //200µs
+    wait (1);
+min_OK=true;
     while (true) {
+
         
-        wait (1); 
         led3=1;
 
-        pc.printf("RMS=%0.3f \r\n",sqrt(Trms_float.GetAverage()));
+        pc.printf("RMS=%0.1f \r\n",sqrt(Trms_float.GetAverage()));
+        pc.printf("min=%0.1f max=%0.1f\r\n",sqrt(min),sqrt(max));
         led3=0;
+        wait (1);
     }
 }
\ No newline at end of file