test AnalogIn_Diff.lib for board K64F
Dependencies: AnalogIn_Diff_ok mbed
Diff: main.cpp
- Revision:
- 4:bcd2a4b5feaf
- Parent:
- 3:f1ab02bc87f3
- Child:
- 5:f994e394a7ec
--- a/main.cpp Wed Jul 16 14:39:09 2014 +0000 +++ b/main.cpp Tue Jul 22 15:02:09 2014 +0000 @@ -1,9 +1,11 @@ #include "mbed.h" +#include "AnalogIn_Diff.h" #include "math.h" #include "MovingAverage.h" -#define VERSION "15_07_2014" + +#define VERSION "21_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 @@ -12,8 +14,11 @@ #define UAC_NON2 UAC_NON*UAC_NON #define UAC_MAX2 UAC_MAX*UAC_MAX #define UAC_MIN2 UAC_MIN*UAC_MIN +#define R1 1E6 +#define R2 +AnalogIn_Diff a2d(0); struct { - float gain; + float gain; float offset; //AnalogIn adc; } adc_volt,adc_curr; @@ -22,8 +27,9 @@ Timer timer_max; bool F_timer_max=false; Serial pc(USBTX, USBRX); -AnalogIn adc_1(PTB2); -AnalogIn adc_2(PTB3); +//AnalogIn adc_1(PTB2); +//AnalogIn adc_2(PTB3); + Ticker flipperADC; DigitalOut led1(LED_RED); DigitalOut led2(LED_GREEN); @@ -35,65 +41,69 @@ bool min_OK=false; void flipADC() { + float val; led1=1; - int val_i32=adc_2.read_u16()-adc_1.read_u16(); //read ADC + int val_i32=a2d.read_16(1); val=(float)val_i32*adc_volt.gain-adc_volt.offset; -moy.Insert(val); + + moy.Insert(val); Trms.Insert(val*val); val=Trms.GetAverage(); max=max(val,max); if(min_OK==true) min=min(val,min); - if(val<UAC_MIN2 && F_timer_min ==false) - { + if(val<UAC_MIN2 && F_timer_min ==false) { timer_min.reset(); timer_min.start(); - F_timer_min = true; + F_timer_min = true; } - if(val>UAC_MIN2 && F_timer_min ==true) - { + if(val>UAC_MIN2 && F_timer_min ==true) { timer_min.stop(); - F_timer_min = false; + F_timer_min = false; } - if(val>UAC_MAX2 && F_timer_max ==false) - { + if(val>UAC_MAX2 && F_timer_max ==false) { timer_max.reset(); timer_max.start(); - F_timer_max = true; + F_timer_max = true; } - if(val<UAC_MAX2 && F_timer_max ==true) - { + if(val<UAC_MAX2 && F_timer_max ==true) { timer_max.stop(); - - F_timer_max = false; + + F_timer_max = false; } + led1=0; } int main() { + + led1=1; led2=0; led3=1; pc.baud(115200); pc.printf("LAAS-CNRS ,TRMS ,%s ,%s\r",CIBLE,VERSION); - adc_volt.gain=(1960.0*3.3)/65535.0; + adc_volt.gain=(3920.0*3.3)/65535.0; adc_volt.offset=-17.0; flipperADC.attach_us(&flipADC, 1000); //200µs wait (5); -min_OK=true; + min_OK=true; + while (true) { - + led3=1; pc.printf("RMS=%f \r\n",sqrt(Trms.GetAverage())); 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); } } \ No newline at end of file