Tarea Reloj Ds3231
Dependencies: mbed Debounced QEI ds3231 TextLCD Pulse1
control.h
- Committer:
- dsuranr15
- Date:
- 2019-08-30
- Revision:
- 0:6c5518885385
File content as of revision 0:6c5518885385:
#include "mbed.h" #include <Pulse1.h> // esta libreria se usa para la comprobacion del numero que el control esta pulsando. PulseInOut irda(PTD0); // se leen los datos del irda Serial pc(USBTX, USBRX); // estas cadenas se identificaron previamente con ayuda del programa captura.irda se le realizo una modificacion para obtener los valores en binario 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 control() { fflush( stdin ); // se borra los datos de irda num=0; for(i=0; i<numb; ++i) { // vector que lee los datos de irda numP[i] = irda.read_high_us(); //funcion para leer un pulso alto wait_us(300); } for(i=0; i<numb; ++i) { // se transforman a binario if(numP[i]<800) { numP[i]=0; } else { numP[i]=1; } } //del for a=0; // se compara la cadena que llega con cada uno de los vectores identificados anteriormente, con el que tenga coincidencia, sera el numero. for(i=2; i<numb; ++i) { if(numP[i]==t1[i]) { // se compara uno a uno a++; // si son iguales se suman if(a==29) { // si la suma llega a 29 es porque son iguales. num=1; // realiza la identificacion del numero } } } 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; } } } //Todos los casos se realizan igual que el primero, en este caso se hace el envio del numero a=0; pc.printf("\n%d",num); return num; // se envia el numero }