Práctica 3

Dependencies:   TextLCD mbed

Fork of PR3 by MII1SistElec

main.cpp

Committer:
carlospomar
Date:
2017-11-10
Revision:
2:0ef1b1712e64
Parent:
1:591fea5f363b
Child:
3:30f1e2f8308c

File content as of revision 2:0ef1b1712e64:

#include "mbed.h"
// librería LCD

#define vector 100      // valor para definir el tamaño de los búfferes de muestreo
//TextLCD (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,
int bufferlleno=0;      // variable de estado
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 Vpmax=0;
int Vpmin=0;
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 suma;             // 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%3.3f V,Vrms
            break;
        case 1;
            lcdprintf(); //
            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;
                }
            }
        }

}


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 (bufferlleno) {
            suma=0;
            flag3=0;
            for (contm=0; contm<100: contm++) {
                if (flag1==1) {
                    muestra=buffer1[contm];
                } else {
                    muestra=buffer2[contm];
                }
            }
        }

    }
}