![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
En este archivo se encuentra la programación completa de la tarea de I2C (Alarma)
Dependencies: DebouncedIn QEI RTC-DS1307 mbed
main.cpp@0:640817dd805d, 2015-11-23 (annotated)
- Committer:
- squinteroz
- Date:
- Mon Nov 23 02:56:33 2015 +0000
- Revision:
- 0:640817dd805d
En este archivo se encuentra la programaci?n de la tarea de I2C, la cual consiste en una alarma.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
squinteroz | 0:640817dd805d | 1 | // Sebastian Vergara-Sebastian Quintero-Eliana Mejía |
squinteroz | 0:640817dd805d | 2 | |
squinteroz | 0:640817dd805d | 3 | // A continuación definimos las librerias necesarias para la ejecución de este programa |
squinteroz | 0:640817dd805d | 4 | #include "mbed.h" |
squinteroz | 0:640817dd805d | 5 | #include "Rtc_Ds1307.h" |
squinteroz | 0:640817dd805d | 6 | #include "DebouncedIn.h" |
squinteroz | 0:640817dd805d | 7 | #include "QEI.h" |
squinteroz | 0:640817dd805d | 8 | |
squinteroz | 0:640817dd805d | 9 | // Definimos las salidas digitales a usar en la freescale |
squinteroz | 0:640817dd805d | 10 | DigitalOut LedVerde(LED2); |
squinteroz | 0:640817dd805d | 11 | DigitalOut LedRojo(LED1); |
squinteroz | 0:640817dd805d | 12 | DigitalOut LedAzul(LED3); |
squinteroz | 0:640817dd805d | 13 | DigitalOut P(PTE20); |
squinteroz | 0:640817dd805d | 14 | |
squinteroz | 0:640817dd805d | 15 | //RtcCls rtc(p28, p27, p29, true); |
squinteroz | 0:640817dd805d | 16 | Rtc_Ds1307 rtc(PTE0,PTE1); |
squinteroz | 0:640817dd805d | 17 | |
squinteroz | 0:640817dd805d | 18 | Serial pc(USBTX, USBRX, "pc"); |
squinteroz | 0:640817dd805d | 19 | |
squinteroz | 0:640817dd805d | 20 | //Aquí se configuran los puertos del encoder |
squinteroz | 0:640817dd805d | 21 | QEI wheel (PTD5, PTD0, NC, 100); |
squinteroz | 0:640817dd805d | 22 | |
squinteroz | 0:640817dd805d | 23 | //Se programan los botones |
squinteroz | 0:640817dd805d | 24 | DebouncedIn BotonENC(PTA16); // botón propio del encoder |
squinteroz | 0:640817dd805d | 25 | DebouncedIn Boton2(PTE21); // boton utilizado para confirmar |
squinteroz | 0:640817dd805d | 26 | |
squinteroz | 0:640817dd805d | 27 | //Salidas digitales para el uso de leds (verificar funcionamiento de alarma) |
squinteroz | 0:640817dd805d | 28 | DigitalOut myled(PTE20); |
squinteroz | 0:640817dd805d | 29 | DigitalOut myled2(PTE5); |
squinteroz | 0:640817dd805d | 30 | |
squinteroz | 0:640817dd805d | 31 | //Se inicializan las variables |
squinteroz | 0:640817dd805d | 32 | int dia=0,mes=0,ano=2015,hh=0,mm=0,ss=0; |
squinteroz | 0:640817dd805d | 33 | char buffer[128]; |
squinteroz | 0:640817dd805d | 34 | int readptr = 0; |
squinteroz | 0:640817dd805d | 35 | int start=0; |
squinteroz | 0:640817dd805d | 36 | int Config; |
squinteroz | 0:640817dd805d | 37 | |
squinteroz | 0:640817dd805d | 38 | int main() { |
squinteroz | 0:640817dd805d | 39 | char c; |
squinteroz | 0:640817dd805d | 40 | Rtc_Ds1307::Time_rtc tm = {}; |
squinteroz | 0:640817dd805d | 41 | |
squinteroz | 0:640817dd805d | 42 | while(1) { |
squinteroz | 0:640817dd805d | 43 | // Se despliega el set de comandos que se usan en Movil-On para habilitar el reloj |
squinteroz | 0:640817dd805d | 44 | set_reloj: |
squinteroz | 0:640817dd805d | 45 | |
squinteroz | 0:640817dd805d | 46 | pc.printf("*************************************\n"); |
squinteroz | 0:640817dd805d | 47 | pc.printf("* Menu for RTC Test : *\n"); |
squinteroz | 0:640817dd805d | 48 | pc.printf("* read - reads the clock *\n"); |
squinteroz | 0:640817dd805d | 49 | pc.printf("* start - start the clock *\n"); |
squinteroz | 0:640817dd805d | 50 | pc.printf("* stop - stop the clock *\n"); |
squinteroz | 0:640817dd805d | 51 | pc.printf("* write - write the clock *\n"); |
squinteroz | 0:640817dd805d | 52 | pc.printf("* ena - enable Square wave output *\n"); |
squinteroz | 0:640817dd805d | 53 | pc.printf("* dis - disable square wave outp. *\n"); |
squinteroz | 0:640817dd805d | 54 | pc.printf("*************************************\n"); |
squinteroz | 0:640817dd805d | 55 | |
squinteroz | 0:640817dd805d | 56 | while( (c = pc.getc()) != '\n') { |
squinteroz | 0:640817dd805d | 57 | buffer[readptr++] = c; |
squinteroz | 0:640817dd805d | 58 | } |
squinteroz | 0:640817dd805d | 59 | buffer[readptr++] = 0; |
squinteroz | 0:640817dd805d | 60 | if (strncmp(buffer, "read", 4) == 0) { |
squinteroz | 0:640817dd805d | 61 | // perform read |
squinteroz | 0:640817dd805d | 62 | pc.printf("Performing read operation\n"); |
squinteroz | 0:640817dd805d | 63 | if (rtc.getTime(tm) ) { |
squinteroz | 0:640817dd805d | 64 | pc.printf("El tiempo actual es : %02d:%02d:%02d\n", tm.hour, tm.min, tm.sec); |
squinteroz | 0:640817dd805d | 65 | pc.printf("La fecha actual es : %s, %02d/%02d/%04d\n", rtc.weekdayToString(tm.wday), tm.mon, tm.date, tm.year); |
squinteroz | 0:640817dd805d | 66 | } |
squinteroz | 0:640817dd805d | 67 | |
squinteroz | 0:640817dd805d | 68 | } |
squinteroz | 0:640817dd805d | 69 | else if (strncmp(buffer, "write", 5) == 0) { |
squinteroz | 0:640817dd805d | 70 | // Se despliega el siguiente menú para configurar fecha y hora actual |
squinteroz | 0:640817dd805d | 71 | pc.printf("Ingrese el dia (fecha 0..31)");// Se pide ingresar un número del 0 al 31 equivalente al día del mes |
squinteroz | 0:640817dd805d | 72 | pc.scanf("%d", &tm.date); |
squinteroz | 0:640817dd805d | 73 | pc.printf("Ingrese el mes (mes 1..12)"); // se pide ingresar un valor entre 1 y 12 que representa el mes |
squinteroz | 0:640817dd805d | 74 | pc.scanf("%d", &tm.mon); |
squinteroz | 0:640817dd805d | 75 | pc.printf("Ingrese el ano (ano)"); // a continuación se ingresa el valor del año |
squinteroz | 0:640817dd805d | 76 | pc.scanf("%d", &tm.year); |
squinteroz | 0:640817dd805d | 77 | pc.printf("Ingrese la hora (horas 0..23)");// Luego se ingresa la hora en formato 24 horas |
squinteroz | 0:640817dd805d | 78 | pc.scanf("%d", &tm.hour); |
squinteroz | 0:640817dd805d | 79 | pc.printf("Ingrese los minutos (minutos 0..59)");// Se ingresa los minutos |
squinteroz | 0:640817dd805d | 80 | pc.scanf("%d", &tm.min); |
squinteroz | 0:640817dd805d | 81 | pc.printf("Ingrese los segundos (segundos 0..59)"); //Y por último los segundos (cualquier valor, ya que es díficil su precisión) |
squinteroz | 0:640817dd805d | 82 | pc.scanf("%d", &tm.sec); |
squinteroz | 0:640817dd805d | 83 | pc.printf("Realizando la operacion... Por favor espere\n"); // Se espera la configuración de esos valores |
squinteroz | 0:640817dd805d | 84 | |
squinteroz | 0:640817dd805d | 85 | while(pc.readable()) |
squinteroz | 0:640817dd805d | 86 | pc.getc(); |
squinteroz | 0:640817dd805d | 87 | rtc.setTime(tm, false, false); |
squinteroz | 0:640817dd805d | 88 | } |
squinteroz | 0:640817dd805d | 89 | else if (strncmp(buffer, "start", 5) == 0) { |
squinteroz | 0:640817dd805d | 90 | // start |
squinteroz | 0:640817dd805d | 91 | readptr = 0; |
squinteroz | 0:640817dd805d | 92 | pc.printf("Dispositivo Iniciado\n"); |
squinteroz | 0:640817dd805d | 93 | rtc.startClock(); |
squinteroz | 0:640817dd805d | 94 | goto set_prev; |
squinteroz | 0:640817dd805d | 95 | |
squinteroz | 0:640817dd805d | 96 | |
squinteroz | 0:640817dd805d | 97 | } |
squinteroz | 0:640817dd805d | 98 | else if (strncmp(buffer, "stop", 4) == 0) { |
squinteroz | 0:640817dd805d | 99 | // stop |
squinteroz | 0:640817dd805d | 100 | pc.printf("Performing stop operation\n"); |
squinteroz | 0:640817dd805d | 101 | rtc.stopClock(); |
squinteroz | 0:640817dd805d | 102 | } |
squinteroz | 0:640817dd805d | 103 | else if (strncmp(buffer, "ena", 3) == 0) { |
squinteroz | 0:640817dd805d | 104 | int rs; |
squinteroz | 0:640817dd805d | 105 | pc.printf("Please specify the frequency : [0 = 1Hz, 1 = 4.096kHz, 2 = 8.192kHz, 3 = 32.768kHz] "); |
squinteroz | 0:640817dd805d | 106 | scanf("%d", &rs); |
squinteroz | 0:640817dd805d | 107 | pc.printf("Enabling the output with %d option\n", rs); |
squinteroz | 0:640817dd805d | 108 | rtc.setSquareWaveOutput(true, (Rtc_Ds1307::SqwRateSelect_t)rs); |
squinteroz | 0:640817dd805d | 109 | } |
squinteroz | 0:640817dd805d | 110 | else if (strncmp(buffer, "dis", 3) == 0) { |
squinteroz | 0:640817dd805d | 111 | pc.printf("Disableing square wave output\n"); |
squinteroz | 0:640817dd805d | 112 | rtc.setSquareWaveOutput(false, Rtc_Ds1307::RS1Hz); |
squinteroz | 0:640817dd805d | 113 | } |
squinteroz | 0:640817dd805d | 114 | else { |
squinteroz | 0:640817dd805d | 115 | pc.printf("syntax error\n"); |
squinteroz | 0:640817dd805d | 116 | } |
squinteroz | 0:640817dd805d | 117 | readptr = 0; |
squinteroz | 0:640817dd805d | 118 | } |
squinteroz | 0:640817dd805d | 119 | |
squinteroz | 0:640817dd805d | 120 | set_prev: |
squinteroz | 0:640817dd805d | 121 | pc.printf("Es correcto? ---- 1 = Si 2 = No\n"); // se habilita esta opción para que el usuario |
squinteroz | 0:640817dd805d | 122 | pc.scanf("%d", &Config); // verifique si la configuración ingresada es correcta o no |
squinteroz | 0:640817dd805d | 123 | |
squinteroz | 0:640817dd805d | 124 | if (Config ==2){ // Si se presiona 2, hubo errores en la configuración |
squinteroz | 0:640817dd805d | 125 | readptr = 0; |
squinteroz | 0:640817dd805d | 126 | goto set_reloj; // se regresa a la función set_reloj para volver a configurar |
squinteroz | 0:640817dd805d | 127 | } |
squinteroz | 0:640817dd805d | 128 | |
squinteroz | 0:640817dd805d | 129 | |
squinteroz | 0:640817dd805d | 130 | else if (Config ==1){ // se si presiona 1, la configuración fue correcta |
squinteroz | 0:640817dd805d | 131 | |
squinteroz | 0:640817dd805d | 132 | pc.printf("Dispositivo Configurado Correctamente Espere ....\n"); // se espera un tiempo |
squinteroz | 0:640817dd805d | 133 | wait(5); |
squinteroz | 0:640817dd805d | 134 | goto set_alarma; // y se va a la función correspondiente a la alarma |
squinteroz | 0:640817dd805d | 135 | } |
squinteroz | 0:640817dd805d | 136 | else { |
squinteroz | 0:640817dd805d | 137 | pc.printf("syntax error\n"); |
squinteroz | 0:640817dd805d | 138 | goto set_prev; |
squinteroz | 0:640817dd805d | 139 | } |
squinteroz | 0:640817dd805d | 140 | |
squinteroz | 0:640817dd805d | 141 | // Aquí se encuentra la función ALARMA, en la cual se configura los valores para la activación de esta |
squinteroz | 0:640817dd805d | 142 | set_alarma: |
squinteroz | 0:640817dd805d | 143 | pc.printf("******* Configuracion Alarma *******\n"); |
squinteroz | 0:640817dd805d | 144 | |
squinteroz | 0:640817dd805d | 145 | |
squinteroz | 0:640817dd805d | 146 | set_dia: |
squinteroz | 0:640817dd805d | 147 | while(1){ |
squinteroz | 0:640817dd805d | 148 | |
squinteroz | 0:640817dd805d | 149 | dia=dia+wheel.getPulses(); |
squinteroz | 0:640817dd805d | 150 | wheel.reset(); |
squinteroz | 0:640817dd805d | 151 | |
squinteroz | 0:640817dd805d | 152 | if(dia>=31){ //En este if, se garantiza que los días esten entre 0 y 31 |
squinteroz | 0:640817dd805d | 153 | dia=31; |
squinteroz | 0:640817dd805d | 154 | } |
squinteroz | 0:640817dd805d | 155 | else if (dia<=0){ |
squinteroz | 0:640817dd805d | 156 | dia=0; |
squinteroz | 0:640817dd805d | 157 | } |
squinteroz | 0:640817dd805d | 158 | pc.printf(">Dia=%d Mes=%d Ano=%d Hora=%d Min=%d Seg=%d\n ",dia,mes,ano,hh,mm,ss); |
squinteroz | 0:640817dd805d | 159 | |
squinteroz | 0:640817dd805d | 160 | // A continuación se programan los botones del encoder para configurar con este las diferentes necesidades de la alarma |
squinteroz | 0:640817dd805d | 161 | if(BotonENC.falling()){ |
squinteroz | 0:640817dd805d | 162 | goto set_mes; |
squinteroz | 0:640817dd805d | 163 | } |
squinteroz | 0:640817dd805d | 164 | if(Boton2.falling()){ |
squinteroz | 0:640817dd805d | 165 | goto set_comp; |
squinteroz | 0:640817dd805d | 166 | } |
squinteroz | 0:640817dd805d | 167 | |
squinteroz | 0:640817dd805d | 168 | |
squinteroz | 0:640817dd805d | 169 | } |
squinteroz | 0:640817dd805d | 170 | |
squinteroz | 0:640817dd805d | 171 | set_mes: |
squinteroz | 0:640817dd805d | 172 | while(1){ |
squinteroz | 0:640817dd805d | 173 | |
squinteroz | 0:640817dd805d | 174 | mes=mes+wheel.getPulses(); |
squinteroz | 0:640817dd805d | 175 | wheel.reset(); |
squinteroz | 0:640817dd805d | 176 | |
squinteroz | 0:640817dd805d | 177 | if(mes>=12){ // Se garantiza que el valor del mes se encuentre entre los valores 0 y 12 |
squinteroz | 0:640817dd805d | 178 | mes=12; |
squinteroz | 0:640817dd805d | 179 | } |
squinteroz | 0:640817dd805d | 180 | else if (mes<=0){ |
squinteroz | 0:640817dd805d | 181 | mes=0; |
squinteroz | 0:640817dd805d | 182 | } |
squinteroz | 0:640817dd805d | 183 | pc.printf(" Dia=%d >Mes=%d Ano=%d Hora=%d Min=%d Seg=%d\n ",dia,mes,ano,hh,mm,ss); |
squinteroz | 0:640817dd805d | 184 | |
squinteroz | 0:640817dd805d | 185 | |
squinteroz | 0:640817dd805d | 186 | if(BotonENC.falling()){ |
squinteroz | 0:640817dd805d | 187 | goto set_ano; |
squinteroz | 0:640817dd805d | 188 | } |
squinteroz | 0:640817dd805d | 189 | if(Boton2.falling()){ |
squinteroz | 0:640817dd805d | 190 | goto set_comp; |
squinteroz | 0:640817dd805d | 191 | } |
squinteroz | 0:640817dd805d | 192 | |
squinteroz | 0:640817dd805d | 193 | |
squinteroz | 0:640817dd805d | 194 | } |
squinteroz | 0:640817dd805d | 195 | set_ano: |
squinteroz | 0:640817dd805d | 196 | while(1){ |
squinteroz | 0:640817dd805d | 197 | |
squinteroz | 0:640817dd805d | 198 | ano=ano+wheel.getPulses(); |
squinteroz | 0:640817dd805d | 199 | wheel.reset(); |
squinteroz | 0:640817dd805d | 200 | |
squinteroz | 0:640817dd805d | 201 | if(ano>=2030){ //Se programan alarmas para los próximos 15 años (entre los años 2015 y 2030) |
squinteroz | 0:640817dd805d | 202 | ano=2030; |
squinteroz | 0:640817dd805d | 203 | } |
squinteroz | 0:640817dd805d | 204 | else if (ano<=2015){ |
squinteroz | 0:640817dd805d | 205 | ano=2015; |
squinteroz | 0:640817dd805d | 206 | } |
squinteroz | 0:640817dd805d | 207 | pc.printf(" Dia=%d Mes=%d >Ano=%d Hora=%d Min=%d Seg=%d\n ",dia,mes,ano,hh,mm,ss); |
squinteroz | 0:640817dd805d | 208 | |
squinteroz | 0:640817dd805d | 209 | |
squinteroz | 0:640817dd805d | 210 | if(BotonENC.falling()){ |
squinteroz | 0:640817dd805d | 211 | goto set_hh; |
squinteroz | 0:640817dd805d | 212 | } |
squinteroz | 0:640817dd805d | 213 | if(Boton2.falling()){ |
squinteroz | 0:640817dd805d | 214 | goto set_comp; |
squinteroz | 0:640817dd805d | 215 | } |
squinteroz | 0:640817dd805d | 216 | |
squinteroz | 0:640817dd805d | 217 | } |
squinteroz | 0:640817dd805d | 218 | set_hh: |
squinteroz | 0:640817dd805d | 219 | while(1){ |
squinteroz | 0:640817dd805d | 220 | |
squinteroz | 0:640817dd805d | 221 | hh=hh+wheel.getPulses(); |
squinteroz | 0:640817dd805d | 222 | wheel.reset(); |
squinteroz | 0:640817dd805d | 223 | |
squinteroz | 0:640817dd805d | 224 | if(hh>=23){ // Las horas deben encontrarse siempre en el rango de 0 a 23 (La hora 24 = La hora 0) |
squinteroz | 0:640817dd805d | 225 | hh=23; |
squinteroz | 0:640817dd805d | 226 | } |
squinteroz | 0:640817dd805d | 227 | else if (hh<=0){ |
squinteroz | 0:640817dd805d | 228 | hh=0; |
squinteroz | 0:640817dd805d | 229 | } |
squinteroz | 0:640817dd805d | 230 | pc.printf(" Dia=%d Mes=%d Ano=%d >Hora=%d Min=%d Seg=%d\n ",dia,mes,ano,hh,mm,ss); |
squinteroz | 0:640817dd805d | 231 | |
squinteroz | 0:640817dd805d | 232 | |
squinteroz | 0:640817dd805d | 233 | if(BotonENC.falling()){ |
squinteroz | 0:640817dd805d | 234 | goto set_mm; |
squinteroz | 0:640817dd805d | 235 | } |
squinteroz | 0:640817dd805d | 236 | if(Boton2.falling()){ |
squinteroz | 0:640817dd805d | 237 | goto set_comp; |
squinteroz | 0:640817dd805d | 238 | } |
squinteroz | 0:640817dd805d | 239 | |
squinteroz | 0:640817dd805d | 240 | |
squinteroz | 0:640817dd805d | 241 | } |
squinteroz | 0:640817dd805d | 242 | set_mm: |
squinteroz | 0:640817dd805d | 243 | while(1){ |
squinteroz | 0:640817dd805d | 244 | |
squinteroz | 0:640817dd805d | 245 | mm=mm+wheel.getPulses(); |
squinteroz | 0:640817dd805d | 246 | wheel.reset(); |
squinteroz | 0:640817dd805d | 247 | |
squinteroz | 0:640817dd805d | 248 | if(mm>=59){ //Minutos siempre positivos entre 0 y 59 (El minuto 60 es igual al 0) |
squinteroz | 0:640817dd805d | 249 | mm=59; |
squinteroz | 0:640817dd805d | 250 | } |
squinteroz | 0:640817dd805d | 251 | else if (mm<=0){ |
squinteroz | 0:640817dd805d | 252 | mm=0; |
squinteroz | 0:640817dd805d | 253 | } |
squinteroz | 0:640817dd805d | 254 | pc.printf(" Dia=%d Mes=%d Ano=%d Hora=%d >Min=%d Seg=%d\n ",dia,mes,ano,hh,mm,ss); |
squinteroz | 0:640817dd805d | 255 | |
squinteroz | 0:640817dd805d | 256 | |
squinteroz | 0:640817dd805d | 257 | if(BotonENC.falling()){ |
squinteroz | 0:640817dd805d | 258 | goto set_ss; |
squinteroz | 0:640817dd805d | 259 | } |
squinteroz | 0:640817dd805d | 260 | if(Boton2.falling()){ |
squinteroz | 0:640817dd805d | 261 | goto set_comp; |
squinteroz | 0:640817dd805d | 262 | } |
squinteroz | 0:640817dd805d | 263 | |
squinteroz | 0:640817dd805d | 264 | |
squinteroz | 0:640817dd805d | 265 | } |
squinteroz | 0:640817dd805d | 266 | |
squinteroz | 0:640817dd805d | 267 | set_ss: |
squinteroz | 0:640817dd805d | 268 | while(1){ |
squinteroz | 0:640817dd805d | 269 | |
squinteroz | 0:640817dd805d | 270 | ss=ss+wheel.getPulses(); |
squinteroz | 0:640817dd805d | 271 | wheel.reset(); |
squinteroz | 0:640817dd805d | 272 | |
squinteroz | 0:640817dd805d | 273 | if(ss>=59){ //De nuevo, en un minuto hay 60 segundos ( partiendo del 0 al 59) |
squinteroz | 0:640817dd805d | 274 | ss=59; |
squinteroz | 0:640817dd805d | 275 | } |
squinteroz | 0:640817dd805d | 276 | else if (ss<=0){ |
squinteroz | 0:640817dd805d | 277 | ss=0; |
squinteroz | 0:640817dd805d | 278 | } |
squinteroz | 0:640817dd805d | 279 | pc.printf(" Dia=%d Mes=%d Ano=%d Hora=%d Min=%d >Seg=%d\n ",dia,mes,ano,hh,mm,ss); |
squinteroz | 0:640817dd805d | 280 | |
squinteroz | 0:640817dd805d | 281 | |
squinteroz | 0:640817dd805d | 282 | if(BotonENC.falling()){ |
squinteroz | 0:640817dd805d | 283 | goto set_dia; |
squinteroz | 0:640817dd805d | 284 | } |
squinteroz | 0:640817dd805d | 285 | if(Boton2.falling()){ |
squinteroz | 0:640817dd805d | 286 | goto set_comp; |
squinteroz | 0:640817dd805d | 287 | } |
squinteroz | 0:640817dd805d | 288 | |
squinteroz | 0:640817dd805d | 289 | |
squinteroz | 0:640817dd805d | 290 | } |
squinteroz | 0:640817dd805d | 291 | |
squinteroz | 0:640817dd805d | 292 | // Luego de tener totalmente ingresador los datos de la alarma, se ingresa a la sección donde se compara |
squinteroz | 0:640817dd805d | 293 | // la fecha y hora actual con la fecha y hora de la alarma programada |
squinteroz | 0:640817dd805d | 294 | set_comp: |
squinteroz | 0:640817dd805d | 295 | |
squinteroz | 0:640817dd805d | 296 | pc.printf("***Datos ingresados para alarma****\n"); |
squinteroz | 0:640817dd805d | 297 | pc.printf(" Dia=%d Mes=%d Ano=%d Hora=%d Min=%d Seg=%d\n ",dia,mes,ano,hh,mm,ss); |
squinteroz | 0:640817dd805d | 298 | |
squinteroz | 0:640817dd805d | 299 | while(1){ |
squinteroz | 0:640817dd805d | 300 | rtc.getTime(tm); |
squinteroz | 0:640817dd805d | 301 | pc.printf("El tiempo actual es : %02d:%02d:%02d\n", tm.hour, tm.min, tm.sec); |
squinteroz | 0:640817dd805d | 302 | pc.printf("La fecha actual es %s, %02d/%02d/%04d\n", rtc.weekdayToString(tm.wday), tm.mon, tm.date, tm.year); |
squinteroz | 0:640817dd805d | 303 | if(tm.hour>=hh && tm.min>=mm &&tm.sec>=ss && tm.mon>=mes && tm.date>=dia && tm.year>=ano){ |
squinteroz | 0:640817dd805d | 304 | myled=0; // En estas líneas de código se busca mostrar el funcionamiento de la alarma cuando |
squinteroz | 0:640817dd805d | 305 | myled2=1; // esta es encendida mediante el encendido y apagado alternado de dos diodos leds. |
squinteroz | 0:640817dd805d | 306 | wait(0.5); // con un pequeño tiempo de diferencia para lograr dicho efecto. |
squinteroz | 0:640817dd805d | 307 | myled=1; |
squinteroz | 0:640817dd805d | 308 | myled2=0; |
squinteroz | 0:640817dd805d | 309 | wait(0.5); |
squinteroz | 0:640817dd805d | 310 | } |
squinteroz | 0:640817dd805d | 311 | else { |
squinteroz | 0:640817dd805d | 312 | myled=1; |
squinteroz | 0:640817dd805d | 313 | } |
squinteroz | 0:640817dd805d | 314 | wait(1); |
squinteroz | 0:640817dd805d | 315 | } |
squinteroz | 0:640817dd805d | 316 | |
squinteroz | 0:640817dd805d | 317 | } |