test AnalogIn_Diff.lib for board K64F
Dependencies: AnalogIn_Diff_ok mbed
Diff: main.cpp
- Revision:
- 3:f1ab02bc87f3
- Parent:
- 2:bf4f474ff746
- Child:
- 4:bcd2a4b5feaf
diff -r bf4f474ff746 -r f1ab02bc87f3 main.cpp --- 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);