Tarea Reloj Ds3231

Dependencies:   mbed Debounced QEI ds3231 TextLCD Pulse1

control1.h

Committer:
dsuranr15
Date:
2019-08-30
Revision:
0:6c5518885385

File content as of revision 0:6c5518885385:

#include "mbed.h"
#include <Pulse1.h>
#include "TextLCD.h"

//PulseInOut irda(PTD0);
//Serial pc(USBTX, USBRX);
TextLCD lcd(PTB8,PTB9, PTB10, PTB11, PTE2, PTE3); //Pines LCD

// esta libreria se realizo con la intension de verificar el correcto funcionamiento cuando necesito obtener un numero en vez de un vector.
// los numeros siguen siendo los mismo que en control.h, la diferencia radicara en el uso de un ciclo for para obtener el numero.


/*
int ok[33]= {1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,1,1,1,0,1,0,0};
int t1[33]= {1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,1,1,1};
int t2[33]= {1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1,1,1,1};
int t3[33]= {1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,1,1,1,1};
int t4[33]= {1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,1,1,1};
int t5[33]= {1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,0,1,1,1};
int t6[33]= {1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,1,1,1};
int t7[33]= {1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,1};
int t8[33]= {1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,1};
int t9[33]= {1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,1,1};
int t0[33]= {1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,1,1};
int po[33]= {1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1};
int t77[33]= {0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,1,0,1,0,0,1,1,1,0};
int i=0;
int numb=32;
int numP[33];
int a=0;
int cont=0;
int b=0;
int si=0;
int num=0;
*/
int j=0;
int Num1=0;
int Num2=0;
int Num3=0;
int Num4=0;
int NUM=0;


int control1(int A) // la variable a es la cantidad de digitos que va a tener el numero
{
    // se declaran las condiciones iniciales
    j=0;
    num=0;
    NUM=0;
    Num1=0;
    Num2=0;
    Num3=0;
    Num4=0;
    for(j=0; j<A; ++j) { // el ciclo for se va a recorrer las veces que el usuario solicita

///////////////////////////////////////////////////////////////////////////////
        fflush( stdin ); // borra lo que se tenga en el irda


        for(i=0; i<numb; ++i) {

            numP[i] = irda.read_high_us();    //funcion para leer un pulso alto
            wait_us(300);
            
        }
        for(i=0; i<numb; ++i) { // el vector que leyo en irda lo convierte a binario
            if(numP[i]<800) {
                numP[i]=0;

            } else {
                numP[i]=1;
            }


        }  //del for




        a=0;
        
        // este codigo de aca hacia abajo lo que hace es la comparacion de cada uno de los numeros, si coinciden todos los bit la salida es el numero en hecadecimal.
        for(i=2; i<numb; ++i) {
            if(numP[i]==t1[i]) {
                a++;
                if(a==29) {
                    num=1;


                }
            }
        }
        a=0;
        for(i=2; i<numb; ++i) {
            if(numP[i]==t2[i]) {
                a++;
                if(a==29) {
                    a=0;
                    num=2;

                }
            }
        }
        a=0;
        for(i=2; i<numb; ++i) {
            if(numP[i]==t3[i]) {
                a++;

                if(a==29) {
                    a=0;
                    num=3;
                }
            }
        }
        a=0;
        for(i=2; i<numb; ++i) {
            if(numP[i]==t4[i]) {
                a++;
                if(a==29) {
                    num=4;


                }
            }
        }
        a=0;
        for(i=2; i<numb; ++i) {
            if(numP[i]==t5[i]) {
                a++;
                if(a==29) {
                    num=5;


                }
            }
        }
        a=0;
        for(i=2; i<numb; ++i) {
            if(numP[i]==t6[i]) {
                a++;
                if(a==29) {
                    num=6;


                }
            }
        }
        a=0;
        for(i=2; i<numb; ++i) {
            if(numP[i]==t7[i]) {
                a++;
                if(a==29) {
                    num=7;


                }
            }
        }
        a=0;
        for(i=2; i<numb; ++i) {
            if(numP[i]==t8[i]) {
                a++;
                if(a==29) {
                    num=8;


                }
            }
        }
        a=0;
        for(i=2; i<numb; ++i) {
            if(numP[i]==t9[i]) {
                a++;
                if(a==29) {
                    num=9;


                }
            }
        }
        a=0;
        for(i=2; i<numb; ++i) {
            if(numP[i]==po[i]) {
                a++;
                if(a==29) {
                    num=88;


                }
            }
        }
        a=0;
        for(i=2; i<numb; ++i) {
            if(numP[i]==ok[i]) {
                a++;
                if(a==29) {
                    num=99;


                }
            }
        }
        pc.printf("\nel numero");
        pc.printf("\n%d",num);
        wait(2);
        ///////////////////////////////////////////////////////////77
        // arriba esta como se dijo la verificacion de cada uno de los numeros.
        
        // estos codigos de abajo sirven para crear los numeros que tienen mas de una unidad, se aplica unidades, decenas, y centenas para construir el numero.
        if(j==0) { //unidades
            pc.printf("\nprimero");
            Num1=num*1;
        }
        if(j==1) { //decenas
            Num2=num*10;
        }
        if(j==2) {//centenas
            Num3=num*100;
        }
        if(j==3) {
            Num4=num*1000;
        }


        pc.printf("\n Antes de la suma");
        NUM=Num1+Num2+Num3+Num4; // se realiza la suma de los numeros
        pc.printf("\nla suma");
        pc.printf("\n%d",NUM);
        lcd.locate(8,0);
        lcd.printf("\n%d",NUM);
        wait(1);

    }

    a=0; // se reinician las variables de control
    A=0;
    pc.printf("\n%d",NUM);
    return NUM; // se envia el numero





}