Tarea Reloj Ds3231

Dependencies:   mbed Debounced QEI ds3231 TextLCD Pulse1

Committer:
dsuranr15
Date:
Fri Aug 30 14:05:20 2019 +0000
Revision:
0:6c5518885385
Tarea Reloj Ds3231

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dsuranr15 0:6c5518885385 1 #include "mbed.h"
dsuranr15 0:6c5518885385 2 #include <Pulse1.h>
dsuranr15 0:6c5518885385 3
dsuranr15 0:6c5518885385 4 // esta libreria se usa para la comprobacion del numero que el control esta pulsando.
dsuranr15 0:6c5518885385 5
dsuranr15 0:6c5518885385 6 PulseInOut irda(PTD0); // se leen los datos del irda
dsuranr15 0:6c5518885385 7 Serial pc(USBTX, USBRX);
dsuranr15 0:6c5518885385 8
dsuranr15 0:6c5518885385 9 // estas cadenas se identificaron previamente con ayuda del programa captura.irda se le realizo una modificacion para obtener los valores en binario
dsuranr15 0:6c5518885385 10 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};
dsuranr15 0:6c5518885385 11 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};
dsuranr15 0:6c5518885385 12 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};
dsuranr15 0:6c5518885385 13 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};
dsuranr15 0:6c5518885385 14 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};
dsuranr15 0:6c5518885385 15 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};
dsuranr15 0:6c5518885385 16 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};
dsuranr15 0:6c5518885385 17 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};
dsuranr15 0:6c5518885385 18 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};
dsuranr15 0:6c5518885385 19 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};
dsuranr15 0:6c5518885385 20 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};
dsuranr15 0:6c5518885385 21 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};
dsuranr15 0:6c5518885385 22 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};
dsuranr15 0:6c5518885385 23 int i=0;
dsuranr15 0:6c5518885385 24 int numb=32;
dsuranr15 0:6c5518885385 25 int numP[33];
dsuranr15 0:6c5518885385 26 int a=0;
dsuranr15 0:6c5518885385 27 int cont=0;
dsuranr15 0:6c5518885385 28 int b=0;
dsuranr15 0:6c5518885385 29 int si=0;
dsuranr15 0:6c5518885385 30 int num=0;
dsuranr15 0:6c5518885385 31
dsuranr15 0:6c5518885385 32 int control()
dsuranr15 0:6c5518885385 33 {
dsuranr15 0:6c5518885385 34
dsuranr15 0:6c5518885385 35
dsuranr15 0:6c5518885385 36
dsuranr15 0:6c5518885385 37 fflush( stdin ); // se borra los datos de irda
dsuranr15 0:6c5518885385 38 num=0;
dsuranr15 0:6c5518885385 39
dsuranr15 0:6c5518885385 40 for(i=0; i<numb; ++i) { // vector que lee los datos de irda
dsuranr15 0:6c5518885385 41
dsuranr15 0:6c5518885385 42 numP[i] = irda.read_high_us(); //funcion para leer un pulso alto
dsuranr15 0:6c5518885385 43 wait_us(300);
dsuranr15 0:6c5518885385 44
dsuranr15 0:6c5518885385 45 }
dsuranr15 0:6c5518885385 46 for(i=0; i<numb; ++i) { // se transforman a binario
dsuranr15 0:6c5518885385 47 if(numP[i]<800) {
dsuranr15 0:6c5518885385 48 numP[i]=0;
dsuranr15 0:6c5518885385 49
dsuranr15 0:6c5518885385 50 } else {
dsuranr15 0:6c5518885385 51 numP[i]=1;
dsuranr15 0:6c5518885385 52 }
dsuranr15 0:6c5518885385 53
dsuranr15 0:6c5518885385 54
dsuranr15 0:6c5518885385 55 } //del for
dsuranr15 0:6c5518885385 56
dsuranr15 0:6c5518885385 57
dsuranr15 0:6c5518885385 58
dsuranr15 0:6c5518885385 59
dsuranr15 0:6c5518885385 60 a=0;
dsuranr15 0:6c5518885385 61
dsuranr15 0:6c5518885385 62 // se compara la cadena que llega con cada uno de los vectores identificados anteriormente, con el que tenga coincidencia, sera el numero.
dsuranr15 0:6c5518885385 63 for(i=2; i<numb; ++i) {
dsuranr15 0:6c5518885385 64 if(numP[i]==t1[i]) { // se compara uno a uno
dsuranr15 0:6c5518885385 65 a++; // si son iguales se suman
dsuranr15 0:6c5518885385 66 if(a==29) { // si la suma llega a 29 es porque son iguales.
dsuranr15 0:6c5518885385 67 num=1; // realiza la identificacion del numero
dsuranr15 0:6c5518885385 68
dsuranr15 0:6c5518885385 69
dsuranr15 0:6c5518885385 70 }
dsuranr15 0:6c5518885385 71 }
dsuranr15 0:6c5518885385 72 }
dsuranr15 0:6c5518885385 73 a=0;
dsuranr15 0:6c5518885385 74 for(i=2; i<numb; ++i) {
dsuranr15 0:6c5518885385 75 if(numP[i]==t2[i]) {
dsuranr15 0:6c5518885385 76 a++;
dsuranr15 0:6c5518885385 77 if(a==29) {
dsuranr15 0:6c5518885385 78 a=0;
dsuranr15 0:6c5518885385 79 num=2;
dsuranr15 0:6c5518885385 80
dsuranr15 0:6c5518885385 81 }
dsuranr15 0:6c5518885385 82 }
dsuranr15 0:6c5518885385 83 }
dsuranr15 0:6c5518885385 84 a=0;
dsuranr15 0:6c5518885385 85 for(i=2; i<numb; ++i) {
dsuranr15 0:6c5518885385 86 if(numP[i]==t3[i]) {
dsuranr15 0:6c5518885385 87 a++;
dsuranr15 0:6c5518885385 88
dsuranr15 0:6c5518885385 89 if(a==29) {
dsuranr15 0:6c5518885385 90 a=0;
dsuranr15 0:6c5518885385 91 num=3;
dsuranr15 0:6c5518885385 92 }
dsuranr15 0:6c5518885385 93 }
dsuranr15 0:6c5518885385 94 }
dsuranr15 0:6c5518885385 95 a=0;
dsuranr15 0:6c5518885385 96 for(i=2; i<numb; ++i) {
dsuranr15 0:6c5518885385 97 if(numP[i]==t4[i]) {
dsuranr15 0:6c5518885385 98 a++;
dsuranr15 0:6c5518885385 99 if(a==29) {
dsuranr15 0:6c5518885385 100 num=4;
dsuranr15 0:6c5518885385 101
dsuranr15 0:6c5518885385 102
dsuranr15 0:6c5518885385 103 }
dsuranr15 0:6c5518885385 104 }
dsuranr15 0:6c5518885385 105 }
dsuranr15 0:6c5518885385 106 a=0;
dsuranr15 0:6c5518885385 107 for(i=2; i<numb; ++i) {
dsuranr15 0:6c5518885385 108 if(numP[i]==t5[i]) {
dsuranr15 0:6c5518885385 109 a++;
dsuranr15 0:6c5518885385 110 if(a==29) {
dsuranr15 0:6c5518885385 111 num=5;
dsuranr15 0:6c5518885385 112
dsuranr15 0:6c5518885385 113
dsuranr15 0:6c5518885385 114 }
dsuranr15 0:6c5518885385 115 }
dsuranr15 0:6c5518885385 116 }
dsuranr15 0:6c5518885385 117 a=0;
dsuranr15 0:6c5518885385 118 for(i=2; i<numb; ++i) {
dsuranr15 0:6c5518885385 119 if(numP[i]==t6[i]) {
dsuranr15 0:6c5518885385 120 a++;
dsuranr15 0:6c5518885385 121 if(a==29) {
dsuranr15 0:6c5518885385 122 num=6;
dsuranr15 0:6c5518885385 123
dsuranr15 0:6c5518885385 124
dsuranr15 0:6c5518885385 125 }
dsuranr15 0:6c5518885385 126 }
dsuranr15 0:6c5518885385 127 }
dsuranr15 0:6c5518885385 128 a=0;
dsuranr15 0:6c5518885385 129 for(i=2; i<numb; ++i) {
dsuranr15 0:6c5518885385 130 if(numP[i]==t7[i]) {
dsuranr15 0:6c5518885385 131 a++;
dsuranr15 0:6c5518885385 132 if(a==29) {
dsuranr15 0:6c5518885385 133 num=7;
dsuranr15 0:6c5518885385 134
dsuranr15 0:6c5518885385 135
dsuranr15 0:6c5518885385 136 }
dsuranr15 0:6c5518885385 137 }
dsuranr15 0:6c5518885385 138 }
dsuranr15 0:6c5518885385 139 a=0;
dsuranr15 0:6c5518885385 140 for(i=2; i<numb; ++i) {
dsuranr15 0:6c5518885385 141 if(numP[i]==t8[i]) {
dsuranr15 0:6c5518885385 142 a++;
dsuranr15 0:6c5518885385 143 if(a==29) {
dsuranr15 0:6c5518885385 144 num=8;
dsuranr15 0:6c5518885385 145
dsuranr15 0:6c5518885385 146
dsuranr15 0:6c5518885385 147 }
dsuranr15 0:6c5518885385 148 }
dsuranr15 0:6c5518885385 149 }
dsuranr15 0:6c5518885385 150 a=0;
dsuranr15 0:6c5518885385 151 for(i=2; i<numb; ++i) {
dsuranr15 0:6c5518885385 152 if(numP[i]==t9[i]) {
dsuranr15 0:6c5518885385 153 a++;
dsuranr15 0:6c5518885385 154 if(a==29) {
dsuranr15 0:6c5518885385 155 num=9;
dsuranr15 0:6c5518885385 156
dsuranr15 0:6c5518885385 157
dsuranr15 0:6c5518885385 158 }
dsuranr15 0:6c5518885385 159 }
dsuranr15 0:6c5518885385 160 }
dsuranr15 0:6c5518885385 161 a=0;
dsuranr15 0:6c5518885385 162 for(i=2; i<numb; ++i) {
dsuranr15 0:6c5518885385 163 if(numP[i]==po[i]) {
dsuranr15 0:6c5518885385 164 a++;
dsuranr15 0:6c5518885385 165 if(a==29) {
dsuranr15 0:6c5518885385 166 num=88;
dsuranr15 0:6c5518885385 167
dsuranr15 0:6c5518885385 168
dsuranr15 0:6c5518885385 169 }
dsuranr15 0:6c5518885385 170 }
dsuranr15 0:6c5518885385 171 }
dsuranr15 0:6c5518885385 172 a=0;
dsuranr15 0:6c5518885385 173 for(i=2; i<numb; ++i) {
dsuranr15 0:6c5518885385 174 if(numP[i]==ok[i]) {
dsuranr15 0:6c5518885385 175 a++;
dsuranr15 0:6c5518885385 176 if(a==29) {
dsuranr15 0:6c5518885385 177 num=99;
dsuranr15 0:6c5518885385 178
dsuranr15 0:6c5518885385 179
dsuranr15 0:6c5518885385 180 }
dsuranr15 0:6c5518885385 181 }
dsuranr15 0:6c5518885385 182 }
dsuranr15 0:6c5518885385 183
dsuranr15 0:6c5518885385 184 //Todos los casos se realizan igual que el primero, en este caso se hace el envio del numero
dsuranr15 0:6c5518885385 185 a=0;
dsuranr15 0:6c5518885385 186 pc.printf("\n%d",num);
dsuranr15 0:6c5518885385 187 return num; // se envia el numero
dsuranr15 0:6c5518885385 188
dsuranr15 0:6c5518885385 189
dsuranr15 0:6c5518885385 190
dsuranr15 0:6c5518885385 191
dsuranr15 0:6c5518885385 192
dsuranr15 0:6c5518885385 193 }