![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
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 }