test AnalogIn_Diff.lib for board K64F
Dependencies: AnalogIn_Diff_ok mbed
main.cpp@0:9eeda5b17b5b, 2014-07-10 (annotated)
- 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?
User | Revision | Line number | New 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 | } |