test AnalogIn_Diff.lib for board K64F
Dependencies: AnalogIn_Diff_ok mbed
Revision 3:f1ab02bc87f3, committed 2014-07-16
- Comitter:
- fblanc
- Date:
- Wed Jul 16 14:39:09 2014 +0000
- Parent:
- 2:bf4f474ff746
- Child:
- 4:bcd2a4b5feaf
- Commit message:
- timer
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- 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);
frederic blanc
ADC DIFF K64F