Tarea Reloj Ds3231

Dependencies:   mbed Debounced QEI ds3231 TextLCD Pulse1

Revision:
0:6c5518885385
diff -r 000000000000 -r 6c5518885385 control.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/control.h	Fri Aug 30 14:05:20 2019 +0000
@@ -0,0 +1,193 @@
+#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
+
+
+
+
+
+}