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