test AnalogIn_Diff.lib for board K64F
Dependencies: AnalogIn_Diff_ok mbed
Revision 1:c340607e4661, committed 2014-07-10
- 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
frederic blanc
ADC DIFF K64F