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 #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 }