Tarea Reloj Ds3231
Dependencies: mbed Debounced QEI ds3231 TextLCD Pulse1
control1.h@0:6c5518885385, 2019-08-30 (annotated)
- Committer:
- dsuranr15
- Date:
- Fri Aug 30 14:05:20 2019 +0000
- Revision:
- 0:6c5518885385
Tarea Reloj Ds3231
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dsuranr15 | 0:6c5518885385 | 1 | #include "mbed.h" |
dsuranr15 | 0:6c5518885385 | 2 | #include <Pulse1.h> |
dsuranr15 | 0:6c5518885385 | 3 | #include "TextLCD.h" |
dsuranr15 | 0:6c5518885385 | 4 | |
dsuranr15 | 0:6c5518885385 | 5 | //PulseInOut irda(PTD0); |
dsuranr15 | 0:6c5518885385 | 6 | //Serial pc(USBTX, USBRX); |
dsuranr15 | 0:6c5518885385 | 7 | TextLCD lcd(PTB8,PTB9, PTB10, PTB11, PTE2, PTE3); //Pines LCD |
dsuranr15 | 0:6c5518885385 | 8 | |
dsuranr15 | 0:6c5518885385 | 9 | // esta libreria se realizo con la intension de verificar el correcto funcionamiento cuando necesito obtener un numero en vez de un vector. |
dsuranr15 | 0:6c5518885385 | 10 | // los numeros siguen siendo los mismo que en control.h, la diferencia radicara en el uso de un ciclo for para obtener el numero. |
dsuranr15 | 0:6c5518885385 | 11 | |
dsuranr15 | 0:6c5518885385 | 12 | |
dsuranr15 | 0:6c5518885385 | 13 | /* |
dsuranr15 | 0:6c5518885385 | 14 | 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 | 15 | 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 | 16 | 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 | 17 | 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 | 18 | 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 | 19 | 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 | 20 | 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 | 21 | 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 | 22 | 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 | 23 | 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 | 24 | 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 | 25 | 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 | 26 | 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 | 27 | int i=0; |
dsuranr15 | 0:6c5518885385 | 28 | int numb=32; |
dsuranr15 | 0:6c5518885385 | 29 | int numP[33]; |
dsuranr15 | 0:6c5518885385 | 30 | int a=0; |
dsuranr15 | 0:6c5518885385 | 31 | int cont=0; |
dsuranr15 | 0:6c5518885385 | 32 | int b=0; |
dsuranr15 | 0:6c5518885385 | 33 | int si=0; |
dsuranr15 | 0:6c5518885385 | 34 | int num=0; |
dsuranr15 | 0:6c5518885385 | 35 | */ |
dsuranr15 | 0:6c5518885385 | 36 | int j=0; |
dsuranr15 | 0:6c5518885385 | 37 | int Num1=0; |
dsuranr15 | 0:6c5518885385 | 38 | int Num2=0; |
dsuranr15 | 0:6c5518885385 | 39 | int Num3=0; |
dsuranr15 | 0:6c5518885385 | 40 | int Num4=0; |
dsuranr15 | 0:6c5518885385 | 41 | int NUM=0; |
dsuranr15 | 0:6c5518885385 | 42 | |
dsuranr15 | 0:6c5518885385 | 43 | |
dsuranr15 | 0:6c5518885385 | 44 | int control1(int A) // la variable a es la cantidad de digitos que va a tener el numero |
dsuranr15 | 0:6c5518885385 | 45 | { |
dsuranr15 | 0:6c5518885385 | 46 | // se declaran las condiciones iniciales |
dsuranr15 | 0:6c5518885385 | 47 | j=0; |
dsuranr15 | 0:6c5518885385 | 48 | num=0; |
dsuranr15 | 0:6c5518885385 | 49 | NUM=0; |
dsuranr15 | 0:6c5518885385 | 50 | Num1=0; |
dsuranr15 | 0:6c5518885385 | 51 | Num2=0; |
dsuranr15 | 0:6c5518885385 | 52 | Num3=0; |
dsuranr15 | 0:6c5518885385 | 53 | Num4=0; |
dsuranr15 | 0:6c5518885385 | 54 | for(j=0; j<A; ++j) { // el ciclo for se va a recorrer las veces que el usuario solicita |
dsuranr15 | 0:6c5518885385 | 55 | |
dsuranr15 | 0:6c5518885385 | 56 | /////////////////////////////////////////////////////////////////////////////// |
dsuranr15 | 0:6c5518885385 | 57 | fflush( stdin ); // borra lo que se tenga en el irda |
dsuranr15 | 0:6c5518885385 | 58 | |
dsuranr15 | 0:6c5518885385 | 59 | |
dsuranr15 | 0:6c5518885385 | 60 | for(i=0; i<numb; ++i) { |
dsuranr15 | 0:6c5518885385 | 61 | |
dsuranr15 | 0:6c5518885385 | 62 | numP[i] = irda.read_high_us(); //funcion para leer un pulso alto |
dsuranr15 | 0:6c5518885385 | 63 | wait_us(300); |
dsuranr15 | 0:6c5518885385 | 64 | |
dsuranr15 | 0:6c5518885385 | 65 | } |
dsuranr15 | 0:6c5518885385 | 66 | for(i=0; i<numb; ++i) { // el vector que leyo en irda lo convierte a binario |
dsuranr15 | 0:6c5518885385 | 67 | if(numP[i]<800) { |
dsuranr15 | 0:6c5518885385 | 68 | numP[i]=0; |
dsuranr15 | 0:6c5518885385 | 69 | |
dsuranr15 | 0:6c5518885385 | 70 | } else { |
dsuranr15 | 0:6c5518885385 | 71 | numP[i]=1; |
dsuranr15 | 0:6c5518885385 | 72 | } |
dsuranr15 | 0:6c5518885385 | 73 | |
dsuranr15 | 0:6c5518885385 | 74 | |
dsuranr15 | 0:6c5518885385 | 75 | } //del for |
dsuranr15 | 0:6c5518885385 | 76 | |
dsuranr15 | 0:6c5518885385 | 77 | |
dsuranr15 | 0:6c5518885385 | 78 | |
dsuranr15 | 0:6c5518885385 | 79 | |
dsuranr15 | 0:6c5518885385 | 80 | a=0; |
dsuranr15 | 0:6c5518885385 | 81 | |
dsuranr15 | 0:6c5518885385 | 82 | // 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. |
dsuranr15 | 0:6c5518885385 | 83 | for(i=2; i<numb; ++i) { |
dsuranr15 | 0:6c5518885385 | 84 | if(numP[i]==t1[i]) { |
dsuranr15 | 0:6c5518885385 | 85 | a++; |
dsuranr15 | 0:6c5518885385 | 86 | if(a==29) { |
dsuranr15 | 0:6c5518885385 | 87 | num=1; |
dsuranr15 | 0:6c5518885385 | 88 | |
dsuranr15 | 0:6c5518885385 | 89 | |
dsuranr15 | 0:6c5518885385 | 90 | } |
dsuranr15 | 0:6c5518885385 | 91 | } |
dsuranr15 | 0:6c5518885385 | 92 | } |
dsuranr15 | 0:6c5518885385 | 93 | a=0; |
dsuranr15 | 0:6c5518885385 | 94 | for(i=2; i<numb; ++i) { |
dsuranr15 | 0:6c5518885385 | 95 | if(numP[i]==t2[i]) { |
dsuranr15 | 0:6c5518885385 | 96 | a++; |
dsuranr15 | 0:6c5518885385 | 97 | if(a==29) { |
dsuranr15 | 0:6c5518885385 | 98 | a=0; |
dsuranr15 | 0:6c5518885385 | 99 | num=2; |
dsuranr15 | 0:6c5518885385 | 100 | |
dsuranr15 | 0:6c5518885385 | 101 | } |
dsuranr15 | 0:6c5518885385 | 102 | } |
dsuranr15 | 0:6c5518885385 | 103 | } |
dsuranr15 | 0:6c5518885385 | 104 | a=0; |
dsuranr15 | 0:6c5518885385 | 105 | for(i=2; i<numb; ++i) { |
dsuranr15 | 0:6c5518885385 | 106 | if(numP[i]==t3[i]) { |
dsuranr15 | 0:6c5518885385 | 107 | a++; |
dsuranr15 | 0:6c5518885385 | 108 | |
dsuranr15 | 0:6c5518885385 | 109 | if(a==29) { |
dsuranr15 | 0:6c5518885385 | 110 | a=0; |
dsuranr15 | 0:6c5518885385 | 111 | num=3; |
dsuranr15 | 0:6c5518885385 | 112 | } |
dsuranr15 | 0:6c5518885385 | 113 | } |
dsuranr15 | 0:6c5518885385 | 114 | } |
dsuranr15 | 0:6c5518885385 | 115 | a=0; |
dsuranr15 | 0:6c5518885385 | 116 | for(i=2; i<numb; ++i) { |
dsuranr15 | 0:6c5518885385 | 117 | if(numP[i]==t4[i]) { |
dsuranr15 | 0:6c5518885385 | 118 | a++; |
dsuranr15 | 0:6c5518885385 | 119 | if(a==29) { |
dsuranr15 | 0:6c5518885385 | 120 | num=4; |
dsuranr15 | 0:6c5518885385 | 121 | |
dsuranr15 | 0:6c5518885385 | 122 | |
dsuranr15 | 0:6c5518885385 | 123 | } |
dsuranr15 | 0:6c5518885385 | 124 | } |
dsuranr15 | 0:6c5518885385 | 125 | } |
dsuranr15 | 0:6c5518885385 | 126 | a=0; |
dsuranr15 | 0:6c5518885385 | 127 | for(i=2; i<numb; ++i) { |
dsuranr15 | 0:6c5518885385 | 128 | if(numP[i]==t5[i]) { |
dsuranr15 | 0:6c5518885385 | 129 | a++; |
dsuranr15 | 0:6c5518885385 | 130 | if(a==29) { |
dsuranr15 | 0:6c5518885385 | 131 | num=5; |
dsuranr15 | 0:6c5518885385 | 132 | |
dsuranr15 | 0:6c5518885385 | 133 | |
dsuranr15 | 0:6c5518885385 | 134 | } |
dsuranr15 | 0:6c5518885385 | 135 | } |
dsuranr15 | 0:6c5518885385 | 136 | } |
dsuranr15 | 0:6c5518885385 | 137 | a=0; |
dsuranr15 | 0:6c5518885385 | 138 | for(i=2; i<numb; ++i) { |
dsuranr15 | 0:6c5518885385 | 139 | if(numP[i]==t6[i]) { |
dsuranr15 | 0:6c5518885385 | 140 | a++; |
dsuranr15 | 0:6c5518885385 | 141 | if(a==29) { |
dsuranr15 | 0:6c5518885385 | 142 | num=6; |
dsuranr15 | 0:6c5518885385 | 143 | |
dsuranr15 | 0:6c5518885385 | 144 | |
dsuranr15 | 0:6c5518885385 | 145 | } |
dsuranr15 | 0:6c5518885385 | 146 | } |
dsuranr15 | 0:6c5518885385 | 147 | } |
dsuranr15 | 0:6c5518885385 | 148 | a=0; |
dsuranr15 | 0:6c5518885385 | 149 | for(i=2; i<numb; ++i) { |
dsuranr15 | 0:6c5518885385 | 150 | if(numP[i]==t7[i]) { |
dsuranr15 | 0:6c5518885385 | 151 | a++; |
dsuranr15 | 0:6c5518885385 | 152 | if(a==29) { |
dsuranr15 | 0:6c5518885385 | 153 | num=7; |
dsuranr15 | 0:6c5518885385 | 154 | |
dsuranr15 | 0:6c5518885385 | 155 | |
dsuranr15 | 0:6c5518885385 | 156 | } |
dsuranr15 | 0:6c5518885385 | 157 | } |
dsuranr15 | 0:6c5518885385 | 158 | } |
dsuranr15 | 0:6c5518885385 | 159 | a=0; |
dsuranr15 | 0:6c5518885385 | 160 | for(i=2; i<numb; ++i) { |
dsuranr15 | 0:6c5518885385 | 161 | if(numP[i]==t8[i]) { |
dsuranr15 | 0:6c5518885385 | 162 | a++; |
dsuranr15 | 0:6c5518885385 | 163 | if(a==29) { |
dsuranr15 | 0:6c5518885385 | 164 | num=8; |
dsuranr15 | 0:6c5518885385 | 165 | |
dsuranr15 | 0:6c5518885385 | 166 | |
dsuranr15 | 0:6c5518885385 | 167 | } |
dsuranr15 | 0:6c5518885385 | 168 | } |
dsuranr15 | 0:6c5518885385 | 169 | } |
dsuranr15 | 0:6c5518885385 | 170 | a=0; |
dsuranr15 | 0:6c5518885385 | 171 | for(i=2; i<numb; ++i) { |
dsuranr15 | 0:6c5518885385 | 172 | if(numP[i]==t9[i]) { |
dsuranr15 | 0:6c5518885385 | 173 | a++; |
dsuranr15 | 0:6c5518885385 | 174 | if(a==29) { |
dsuranr15 | 0:6c5518885385 | 175 | num=9; |
dsuranr15 | 0:6c5518885385 | 176 | |
dsuranr15 | 0:6c5518885385 | 177 | |
dsuranr15 | 0:6c5518885385 | 178 | } |
dsuranr15 | 0:6c5518885385 | 179 | } |
dsuranr15 | 0:6c5518885385 | 180 | } |
dsuranr15 | 0:6c5518885385 | 181 | a=0; |
dsuranr15 | 0:6c5518885385 | 182 | for(i=2; i<numb; ++i) { |
dsuranr15 | 0:6c5518885385 | 183 | if(numP[i]==po[i]) { |
dsuranr15 | 0:6c5518885385 | 184 | a++; |
dsuranr15 | 0:6c5518885385 | 185 | if(a==29) { |
dsuranr15 | 0:6c5518885385 | 186 | num=88; |
dsuranr15 | 0:6c5518885385 | 187 | |
dsuranr15 | 0:6c5518885385 | 188 | |
dsuranr15 | 0:6c5518885385 | 189 | } |
dsuranr15 | 0:6c5518885385 | 190 | } |
dsuranr15 | 0:6c5518885385 | 191 | } |
dsuranr15 | 0:6c5518885385 | 192 | a=0; |
dsuranr15 | 0:6c5518885385 | 193 | for(i=2; i<numb; ++i) { |
dsuranr15 | 0:6c5518885385 | 194 | if(numP[i]==ok[i]) { |
dsuranr15 | 0:6c5518885385 | 195 | a++; |
dsuranr15 | 0:6c5518885385 | 196 | if(a==29) { |
dsuranr15 | 0:6c5518885385 | 197 | num=99; |
dsuranr15 | 0:6c5518885385 | 198 | |
dsuranr15 | 0:6c5518885385 | 199 | |
dsuranr15 | 0:6c5518885385 | 200 | } |
dsuranr15 | 0:6c5518885385 | 201 | } |
dsuranr15 | 0:6c5518885385 | 202 | } |
dsuranr15 | 0:6c5518885385 | 203 | pc.printf("\nel numero"); |
dsuranr15 | 0:6c5518885385 | 204 | pc.printf("\n%d",num); |
dsuranr15 | 0:6c5518885385 | 205 | wait(2); |
dsuranr15 | 0:6c5518885385 | 206 | ///////////////////////////////////////////////////////////77 |
dsuranr15 | 0:6c5518885385 | 207 | // arriba esta como se dijo la verificacion de cada uno de los numeros. |
dsuranr15 | 0:6c5518885385 | 208 | |
dsuranr15 | 0:6c5518885385 | 209 | // 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. |
dsuranr15 | 0:6c5518885385 | 210 | if(j==0) { //unidades |
dsuranr15 | 0:6c5518885385 | 211 | pc.printf("\nprimero"); |
dsuranr15 | 0:6c5518885385 | 212 | Num1=num*1; |
dsuranr15 | 0:6c5518885385 | 213 | } |
dsuranr15 | 0:6c5518885385 | 214 | if(j==1) { //decenas |
dsuranr15 | 0:6c5518885385 | 215 | Num2=num*10; |
dsuranr15 | 0:6c5518885385 | 216 | } |
dsuranr15 | 0:6c5518885385 | 217 | if(j==2) {//centenas |
dsuranr15 | 0:6c5518885385 | 218 | Num3=num*100; |
dsuranr15 | 0:6c5518885385 | 219 | } |
dsuranr15 | 0:6c5518885385 | 220 | if(j==3) { |
dsuranr15 | 0:6c5518885385 | 221 | Num4=num*1000; |
dsuranr15 | 0:6c5518885385 | 222 | } |
dsuranr15 | 0:6c5518885385 | 223 | |
dsuranr15 | 0:6c5518885385 | 224 | |
dsuranr15 | 0:6c5518885385 | 225 | pc.printf("\n Antes de la suma"); |
dsuranr15 | 0:6c5518885385 | 226 | NUM=Num1+Num2+Num3+Num4; // se realiza la suma de los numeros |
dsuranr15 | 0:6c5518885385 | 227 | pc.printf("\nla suma"); |
dsuranr15 | 0:6c5518885385 | 228 | pc.printf("\n%d",NUM); |
dsuranr15 | 0:6c5518885385 | 229 | lcd.locate(8,0); |
dsuranr15 | 0:6c5518885385 | 230 | lcd.printf("\n%d",NUM); |
dsuranr15 | 0:6c5518885385 | 231 | wait(1); |
dsuranr15 | 0:6c5518885385 | 232 | |
dsuranr15 | 0:6c5518885385 | 233 | } |
dsuranr15 | 0:6c5518885385 | 234 | |
dsuranr15 | 0:6c5518885385 | 235 | a=0; // se reinician las variables de control |
dsuranr15 | 0:6c5518885385 | 236 | A=0; |
dsuranr15 | 0:6c5518885385 | 237 | pc.printf("\n%d",NUM); |
dsuranr15 | 0:6c5518885385 | 238 | return NUM; // se envia el numero |
dsuranr15 | 0:6c5518885385 | 239 | |
dsuranr15 | 0:6c5518885385 | 240 | |
dsuranr15 | 0:6c5518885385 | 241 | |
dsuranr15 | 0:6c5518885385 | 242 | |
dsuranr15 | 0:6c5518885385 | 243 | |
dsuranr15 | 0:6c5518885385 | 244 | } |