test AnalogIn_Diff.lib for board K64F

Dependencies:   AnalogIn_Diff_ok mbed

Committer:
fblanc
Date:
Fri Jul 11 13:01:16 2014 +0000
Revision:
2:bf4f474ff746
Parent:
1:c340607e4661
Child:
3:f1ab02bc87f3
test acplc87 230Vac 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 2:bf4f474ff746 4 #define VERSION "11_07_2014"
fblanc 2:bf4f474ff746 5 #define CIBLE "K64F"
fblanc 0:9eeda5b17b5b 6 //USBSerial pc;
fblanc 1:c340607e4661 7 #define max(a,b) (a>=b?a:b)
fblanc 1:c340607e4661 8 #define min(a,b) (a<=b?a:b)
fblanc 1:c340607e4661 9 struct {
fblanc 2:bf4f474ff746 10 float gain;
fblanc 2:bf4f474ff746 11 float offset;
fblanc 0:9eeda5b17b5b 12 //AnalogIn adc;
fblanc 1:c340607e4661 13 } adc_volt,adc_curr;
fblanc 0:9eeda5b17b5b 14 Serial pc(USBTX, USBRX);
fblanc 0:9eeda5b17b5b 15 AnalogIn adc_1(PTB2);
fblanc 0:9eeda5b17b5b 16 AnalogIn adc_2(PTB3);
fblanc 0:9eeda5b17b5b 17 Ticker flipperADC;
fblanc 0:9eeda5b17b5b 18 DigitalOut led1(LED_RED);
fblanc 0:9eeda5b17b5b 19 DigitalOut led2(LED_GREEN);
fblanc 0:9eeda5b17b5b 20 DigitalOut led3(LED_BLUE);
fblanc 2:bf4f474ff746 21 MovingAverage<float> Trms(100,230);
fblanc 2:bf4f474ff746 22 MovingAverage<float> moy(100,0);
fblanc 1:c340607e4661 23 float min=250000;
fblanc 1:c340607e4661 24 float max=0;
fblanc 1:c340607e4661 25 bool min_OK=false;
fblanc 1:c340607e4661 26 void flipADC()
fblanc 1:c340607e4661 27 {
fblanc 1:c340607e4661 28 float val;
fblanc 0:9eeda5b17b5b 29 led1=1;
fblanc 0:9eeda5b17b5b 30 int val_i32=adc_2.read_u16()-adc_1.read_u16(); //read ADC
fblanc 0:9eeda5b17b5b 31
fblanc 2:bf4f474ff746 32 val=(float)val_i32*adc_volt.gain-adc_volt.offset;
fblanc 2:bf4f474ff746 33 moy.Insert(val);
fblanc 2:bf4f474ff746 34 Trms.Insert(val*val);
fblanc 2:bf4f474ff746 35 val=Trms.GetAverage();
fblanc 1:c340607e4661 36 max=max(val,max);
fblanc 1:c340607e4661 37 if(min_OK==true)
fblanc 1:c340607e4661 38 min=min(val,min);
fblanc 1:c340607e4661 39 led1=0;
fblanc 1:c340607e4661 40 }
fblanc 0:9eeda5b17b5b 41
fblanc 1:c340607e4661 42 int main()
fblanc 1:c340607e4661 43 {
fblanc 0:9eeda5b17b5b 44 led1=1;
fblanc 0:9eeda5b17b5b 45 led2=0;
fblanc 0:9eeda5b17b5b 46 led3=1;
fblanc 1:c340607e4661 47 pc.baud(115200);
fblanc 2:bf4f474ff746 48 pc.printf("LAAS-CNRS ,HMA ,%s ,%s\r",CIBLE,VERSION);
fblanc 2:bf4f474ff746 49 adc_volt.gain=(1960.0*3.3)/65535.0;
fblanc 2:bf4f474ff746 50 adc_volt.offset=-17.0;
fblanc 1:c340607e4661 51
fblanc 1:c340607e4661 52 flipperADC.attach_us(&flipADC, 200); //200µs
fblanc 2:bf4f474ff746 53 wait (5);
fblanc 1:c340607e4661 54 min_OK=true;
fblanc 0:9eeda5b17b5b 55 while (true) {
fblanc 1:c340607e4661 56
fblanc 0:9eeda5b17b5b 57
fblanc 0:9eeda5b17b5b 58 led3=1;
fblanc 0:9eeda5b17b5b 59
fblanc 2:bf4f474ff746 60 pc.printf("RMS=%f \r\n",sqrt(Trms.GetAverage()));
fblanc 2:bf4f474ff746 61 pc.printf("min=%0.0f max=%0.0f\r\n",sqrt(min),sqrt(max));
fblanc 2:bf4f474ff746 62 pc.printf("moy=%f \r\n",moy.GetAverage());
fblanc 0:9eeda5b17b5b 63 led3=0;
fblanc 1:c340607e4661 64 wait (1);
fblanc 0:9eeda5b17b5b 65 }
fblanc 0:9eeda5b17b5b 66 }