test AnalogIn_Diff.lib for board K64F

Dependencies:   AnalogIn_Diff_ok mbed

Committer:
fblanc
Date:
Thu Jul 10 12:22:18 2014 +0000
Revision:
0:9eeda5b17b5b
Child:
1:c340607e4661
trms diff ok;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fblanc 0:9eeda5b17b5b 1 #include "mbed.h"
fblanc 0:9eeda5b17b5b 2 #include "math.h"
fblanc 0:9eeda5b17b5b 3 #include "MovingAverage.h"
fblanc 0:9eeda5b17b5b 4 //USBSerial pc;
fblanc 0:9eeda5b17b5b 5 struct{
fblanc 0:9eeda5b17b5b 6 double gain;
fblanc 0:9eeda5b17b5b 7 double offset;
fblanc 0:9eeda5b17b5b 8 //AnalogIn adc;
fblanc 0:9eeda5b17b5b 9 }adc_volt,adc_curr;
fblanc 0:9eeda5b17b5b 10 Serial pc(USBTX, USBRX);
fblanc 0:9eeda5b17b5b 11 AnalogIn adc_1(PTB2);
fblanc 0:9eeda5b17b5b 12 AnalogIn adc_2(PTB3);
fblanc 0:9eeda5b17b5b 13 Ticker flipperADC;
fblanc 0:9eeda5b17b5b 14 DigitalOut led1(LED_RED);
fblanc 0:9eeda5b17b5b 15 DigitalOut led2(LED_GREEN);
fblanc 0:9eeda5b17b5b 16 DigitalOut led3(LED_BLUE);
fblanc 0:9eeda5b17b5b 17 MovingAverage<float> Trms_float(100,0);
fblanc 0:9eeda5b17b5b 18 MovingAverage<int> Trms_int(100,0);
fblanc 0:9eeda5b17b5b 19 void flipADC() {
fblanc 0:9eeda5b17b5b 20 led1=1;
fblanc 0:9eeda5b17b5b 21 int val_i32=adc_2.read_u16()-adc_1.read_u16(); //read ADC
fblanc 0:9eeda5b17b5b 22
fblanc 0:9eeda5b17b5b 23 float val=((float)val_i32*adc_volt.gain)-adc_volt.offset;
fblanc 0:9eeda5b17b5b 24 Trms_float.Insert(val*val);
fblanc 0:9eeda5b17b5b 25 led1=0;
fblanc 0:9eeda5b17b5b 26 }
fblanc 0:9eeda5b17b5b 27
fblanc 0:9eeda5b17b5b 28 int main() {
fblanc 0:9eeda5b17b5b 29
fblanc 0:9eeda5b17b5b 30 pc.baud(115200);
fblanc 0:9eeda5b17b5b 31 adc_volt.gain=3.3/65535.0;
fblanc 0:9eeda5b17b5b 32 adc_volt.offset=0.0;
fblanc 0:9eeda5b17b5b 33
fblanc 0:9eeda5b17b5b 34 flipperADC.attach_us(&flipADC, 200); //200µs
fblanc 0:9eeda5b17b5b 35
fblanc 0:9eeda5b17b5b 36 led1=1;
fblanc 0:9eeda5b17b5b 37 led2=0;
fblanc 0:9eeda5b17b5b 38 led3=1;
fblanc 0:9eeda5b17b5b 39 while (true) {
fblanc 0:9eeda5b17b5b 40
fblanc 0:9eeda5b17b5b 41 wait (1);
fblanc 0:9eeda5b17b5b 42 led3=1;
fblanc 0:9eeda5b17b5b 43
fblanc 0:9eeda5b17b5b 44 pc.printf("RMS=%0.3f \r\n",sqrt(Trms_float.GetAverage()));
fblanc 0:9eeda5b17b5b 45 led3=0;
fblanc 0:9eeda5b17b5b 46 }
fblanc 0:9eeda5b17b5b 47 }