Atope
/
PRACTICA3
ccvcv
Fork of PRACTICA3 by
main.cpp
- Committer:
- carlospomar
- Date:
- 2017-11-10
- Revision:
- 4:71a955ddc240
- Parent:
- 3:30f1e2f8308c
- Child:
- 5:18feff1607c9
File content as of revision 4:71a955ddc240:
#include "mbed.h" #include "TextLCD.h" #define constante (3,3^2)/((2^16)-1)*100) // valor constante para el cálculo de Vrms #define vector 100 // valor para definir el tamaño de los búfferes de muestreo //TextLCD lcd(6 puertos, TextLCD::LCD16x2); rs,e,d4-d7 InterruptIn Sw (); //pulsador en el puerto AnalogIn leer (); // leer del puerto Ticker muestreo; Ticker visualizar; int contt=0; int contm=0; int contvpp=0; int dato=0, // variable para seleccionar el dato a mostrar int flag1; // variable para indicar cuando se tiene que cambiar de buffer int flag2; // variable para indicar cuando se tiene que int flag3; // variable para indicar cuando se tiene que calcular Vpp int flag4; // variable para indicar cuando se llena el buffer int Vpmax=0; // variable para guardar el valor del pico superior int Vpmin=0; // variable para guardar el valor del pico inferior int Vpp=0; float buffer1 [vector]; // buffer de muestreo 1 de tamaño 100 float buffer2 [vector]; // buffer de muestreo 2 de tamaño 100 float Vrms; // variabla para guardar el valor de RMS float valor; float sumatorio; // variable que es la suma de los valores de la muestra float muestra; // variabla para hacer las operaciones //void temporizador () //{ // if (flag2) { // // } // contt++; // if (contt==100) { // contt =0; // flag2 =!flag2; // bufferlleno=0; // } //} void boton() { dato++; if (dato>1) { dato = 0; } } //void LCD() //{ // lcd.cls(); // switch (dato) { // case 0: // lcdprintf("Vrms: %n V",Vrms); //Vrms :\n%3.3f V,Vrms // break; // case 1: // lcdprintf("Vpp: %n V",Vpp); // // break; // } //} void calculovpp () { for(contvpp=0; contvpp=99; contvpp++) { if (muestra(contvpp)>Vpmax) { Vpmax=muestra(contvpp); } else { if (muestra(contvpp)<Vpmin) { Vpmin=muestra(contvpp); } } else { if(!flag3) { Vpp = Vpmax-Vpmin; flag3=!flag3; } } } } void calculovrms () { for (contvrms=0; contvrms=99; contvrms++) { valor = muestra(contvrms); valor = valor*valor; sumatorio = sumatorio + valor; } Vrms = (constante*sumatorio)^(0.5); } int main() { muestreo.attach_us (&temporizador,200); visualizar.attach (&mostrar, 1); Sw.rise(&boton); //printf("pwm set to %.2f %%\n", mypwm.read() * 100); while(1) { if (flag4) { valor=0; sumatorio=0; flag3=0; for (contm=0; contm=99: contm++) { if (flag1==1) { muestra=buffer1[contm]; } else { muestra=buffer2[contm]; } } } } }