![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Despertador
Dependencies: QEI RTC-DS1307 TextLCD mbed
main.cpp@0:d9d18ee787ba, 2016-05-21 (annotated)
- Committer:
- SSJprocesa
- Date:
- Sat May 21 15:45:20 2016 +0000
- Revision:
- 0:d9d18ee787ba
Despertador con alarma programada (Luz y Buzzer), con una RTC programada con un encoder y mostrada en un LCD16x2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
SSJprocesa | 0:d9d18ee787ba | 1 | #include "mbed.h" |
SSJprocesa | 0:d9d18ee787ba | 2 | #include "Rtc_Ds1307.h" |
SSJprocesa | 0:d9d18ee787ba | 3 | #include "TextLCD.h" |
SSJprocesa | 0:d9d18ee787ba | 4 | #include "QEI.h" |
SSJprocesa | 0:d9d18ee787ba | 5 | |
SSJprocesa | 0:d9d18ee787ba | 6 | TextLCD lcd(PTD5, PTD7, PTD6, PTD4, PTD2, PTC9); // rs, e, d4-d7 |
SSJprocesa | 0:d9d18ee787ba | 7 | Rtc_Ds1307 rtc(PTE0, PTE1);//Dato,Reloj |
SSJprocesa | 0:d9d18ee787ba | 8 | QEI encoder (PTC0, PTC4, NC, 624);//pines de etrada de comparación del encoder |
SSJprocesa | 0:d9d18ee787ba | 9 | DigitalIn chan(PTD3);//botón del encoder |
SSJprocesa | 0:d9d18ee787ba | 10 | DigitalIn rlo(PTC3);//pulsador de la freescale para configurar la RTC |
SSJprocesa | 0:d9d18ee787ba | 11 | DigitalIn rl(PTC12);//pulsador de la freescale para configurar la Alarma |
SSJprocesa | 0:d9d18ee787ba | 12 | DigitalOut ledr(PTE29);//Led indicador de la alarma |
SSJprocesa | 0:d9d18ee787ba | 13 | DigitalOut buzz(PTA6);//Buzzer indiciador de la alarma |
SSJprocesa | 0:d9d18ee787ba | 14 | char buffer[128]; |
SSJprocesa | 0:d9d18ee787ba | 15 | int readptr = 0,segundos =0,cambio=0,cont=0,pla=0,pla2=0,key=0;//variables del programa |
SSJprocesa | 0:d9d18ee787ba | 16 | int di=0,me=0,an=0,fle=0,mi=0,se=0,jod=0;//varaibles para la alarma |
SSJprocesa | 0:d9d18ee787ba | 17 | int main() |
SSJprocesa | 0:d9d18ee787ba | 18 | { |
SSJprocesa | 0:d9d18ee787ba | 19 | Rtc_Ds1307::Time_rtc tm = {}; |
SSJprocesa | 0:d9d18ee787ba | 20 | ledr=1;//Led apagado |
SSJprocesa | 0:d9d18ee787ba | 21 | while(1){ |
SSJprocesa | 0:d9d18ee787ba | 22 | sk: if(pla==1)//Rutina para la configuración de los parametros en la RCT (día,mes,año,hora,minutos,segundos,día de la samana) |
SSJprocesa | 0:d9d18ee787ba | 23 | { |
SSJprocesa | 0:d9d18ee787ba | 24 | buzz=0;//Buzzer apagado |
SSJprocesa | 0:d9d18ee787ba | 25 | ledr=1;//Led apagado |
SSJprocesa | 0:d9d18ee787ba | 26 | jod=0; |
SSJprocesa | 0:d9d18ee787ba | 27 | key=0; |
SSJprocesa | 0:d9d18ee787ba | 28 | while(rlo==1){}//anti-rebotes |
SSJprocesa | 0:d9d18ee787ba | 29 | lcd.cls(); |
SSJprocesa | 0:d9d18ee787ba | 30 | while(cont==0) |
SSJprocesa | 0:d9d18ee787ba | 31 | { |
SSJprocesa | 0:d9d18ee787ba | 32 | rtc.stopClock();//para el clock de la RTC |
SSJprocesa | 0:d9d18ee787ba | 33 | lcd.locate(0,0); |
SSJprocesa | 0:d9d18ee787ba | 34 | lcd.printf("(Day 1..31)");//muestra en el LCD el parametro a asignar |
SSJprocesa | 0:d9d18ee787ba | 35 | cambio=encoder.getPulses();//valor del encoder |
SSJprocesa | 0:d9d18ee787ba | 36 | if(cambio<=1){cambio=1;}//limite inferior para este parametro |
SSJprocesa | 0:d9d18ee787ba | 37 | if(cambio>=31){cambio=31;}//limite superior para este parametro |
SSJprocesa | 0:d9d18ee787ba | 38 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 39 | lcd.printf(" "); |
SSJprocesa | 0:d9d18ee787ba | 40 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 41 | lcd.printf("%d",cambio);//valor acutal |
SSJprocesa | 0:d9d18ee787ba | 42 | while(chan==0){encoder.reset();cont=1;}//si presiona el botón del encoder salta al siguiente parametro |
SSJprocesa | 0:d9d18ee787ba | 43 | } |
SSJprocesa | 0:d9d18ee787ba | 44 | tm.date=cambio;//asignación del valor elegido al parametro que se desea asignar en la RTC |
SSJprocesa | 0:d9d18ee787ba | 45 | cambio=0;//limpia la variable |
SSJprocesa | 0:d9d18ee787ba | 46 | while(cont==1) |
SSJprocesa | 0:d9d18ee787ba | 47 | { |
SSJprocesa | 0:d9d18ee787ba | 48 | lcd.locate(0,0); |
SSJprocesa | 0:d9d18ee787ba | 49 | lcd.printf("(month 1..12)"); |
SSJprocesa | 0:d9d18ee787ba | 50 | cambio=encoder.getPulses(); |
SSJprocesa | 0:d9d18ee787ba | 51 | if(cambio<=1){cambio=1;} |
SSJprocesa | 0:d9d18ee787ba | 52 | if(cambio>=12){cambio=12;} |
SSJprocesa | 0:d9d18ee787ba | 53 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 54 | lcd.printf(" "); |
SSJprocesa | 0:d9d18ee787ba | 55 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 56 | lcd.printf("%d",cambio); |
SSJprocesa | 0:d9d18ee787ba | 57 | while(chan==0){encoder.reset();cont=2;} |
SSJprocesa | 0:d9d18ee787ba | 58 | } |
SSJprocesa | 0:d9d18ee787ba | 59 | tm.mon=cambio; |
SSJprocesa | 0:d9d18ee787ba | 60 | cambio=0; |
SSJprocesa | 0:d9d18ee787ba | 61 | while(cont==2) |
SSJprocesa | 0:d9d18ee787ba | 62 | { |
SSJprocesa | 0:d9d18ee787ba | 63 | lcd.locate(0,0); |
SSJprocesa | 0:d9d18ee787ba | 64 | lcd.printf("(year 0-99)"); |
SSJprocesa | 0:d9d18ee787ba | 65 | cambio=encoder.getPulses(); |
SSJprocesa | 0:d9d18ee787ba | 66 | if(cambio<=0){cambio=0;} |
SSJprocesa | 0:d9d18ee787ba | 67 | if(cambio>=99){cambio=99;} |
SSJprocesa | 0:d9d18ee787ba | 68 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 69 | lcd.printf(" "); |
SSJprocesa | 0:d9d18ee787ba | 70 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 71 | lcd.printf("%d",cambio); |
SSJprocesa | 0:d9d18ee787ba | 72 | while(chan==0){encoder.reset();cont=3;} |
SSJprocesa | 0:d9d18ee787ba | 73 | } |
SSJprocesa | 0:d9d18ee787ba | 74 | tm.year=cambio+2000; |
SSJprocesa | 0:d9d18ee787ba | 75 | cambio=0; |
SSJprocesa | 0:d9d18ee787ba | 76 | while(cont==3) |
SSJprocesa | 0:d9d18ee787ba | 77 | { |
SSJprocesa | 0:d9d18ee787ba | 78 | lcd.locate(0,0); |
SSJprocesa | 0:d9d18ee787ba | 79 | lcd.printf("(hours 0..23)"); |
SSJprocesa | 0:d9d18ee787ba | 80 | cambio=encoder.getPulses(); |
SSJprocesa | 0:d9d18ee787ba | 81 | if(cambio<=0){cambio=0;} |
SSJprocesa | 0:d9d18ee787ba | 82 | if(cambio>=23){cambio=23;} |
SSJprocesa | 0:d9d18ee787ba | 83 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 84 | lcd.printf(" "); |
SSJprocesa | 0:d9d18ee787ba | 85 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 86 | lcd.printf("%d",cambio); |
SSJprocesa | 0:d9d18ee787ba | 87 | while(chan==0){encoder.reset();cont=4;cambio=cambio;} |
SSJprocesa | 0:d9d18ee787ba | 88 | } |
SSJprocesa | 0:d9d18ee787ba | 89 | tm.hour=cambio; |
SSJprocesa | 0:d9d18ee787ba | 90 | cambio=0; |
SSJprocesa | 0:d9d18ee787ba | 91 | while(cont==4) |
SSJprocesa | 0:d9d18ee787ba | 92 | { |
SSJprocesa | 0:d9d18ee787ba | 93 | lcd.locate(0,0); |
SSJprocesa | 0:d9d18ee787ba | 94 | lcd.printf("(minutes 0..59)"); |
SSJprocesa | 0:d9d18ee787ba | 95 | cambio=encoder.getPulses(); |
SSJprocesa | 0:d9d18ee787ba | 96 | if(cambio<=0){cambio=0;} |
SSJprocesa | 0:d9d18ee787ba | 97 | if(cambio>=59){cambio=59;} |
SSJprocesa | 0:d9d18ee787ba | 98 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 99 | lcd.printf(" "); |
SSJprocesa | 0:d9d18ee787ba | 100 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 101 | lcd.printf("%d",cambio); |
SSJprocesa | 0:d9d18ee787ba | 102 | while(chan==0){encoder.reset();cont=5;} |
SSJprocesa | 0:d9d18ee787ba | 103 | } |
SSJprocesa | 0:d9d18ee787ba | 104 | tm.min=cambio; |
SSJprocesa | 0:d9d18ee787ba | 105 | cambio=0; |
SSJprocesa | 0:d9d18ee787ba | 106 | while(cont==5) |
SSJprocesa | 0:d9d18ee787ba | 107 | { |
SSJprocesa | 0:d9d18ee787ba | 108 | lcd.locate(0,0); |
SSJprocesa | 0:d9d18ee787ba | 109 | lcd.printf("(seconds 0..59)"); |
SSJprocesa | 0:d9d18ee787ba | 110 | cambio=encoder.getPulses(); |
SSJprocesa | 0:d9d18ee787ba | 111 | if(cambio<=0){cambio=0;} |
SSJprocesa | 0:d9d18ee787ba | 112 | if(cambio>=59){cambio=59;} |
SSJprocesa | 0:d9d18ee787ba | 113 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 114 | lcd.printf(" "); |
SSJprocesa | 0:d9d18ee787ba | 115 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 116 | lcd.printf("%d",cambio); |
SSJprocesa | 0:d9d18ee787ba | 117 | while(chan==0){encoder.reset();cont=6;lcd.locate(0,0);lcd.printf("( ");} |
SSJprocesa | 0:d9d18ee787ba | 118 | } |
SSJprocesa | 0:d9d18ee787ba | 119 | tm.sec=cambio; |
SSJprocesa | 0:d9d18ee787ba | 120 | cambio=1; |
SSJprocesa | 0:d9d18ee787ba | 121 | while(cont==6) |
SSJprocesa | 0:d9d18ee787ba | 122 | { |
SSJprocesa | 0:d9d18ee787ba | 123 | lcd.locate(0,0); |
SSJprocesa | 0:d9d18ee787ba | 124 | lcd.printf("(sunday=1)"); |
SSJprocesa | 0:d9d18ee787ba | 125 | cambio=encoder.getPulses(); |
SSJprocesa | 0:d9d18ee787ba | 126 | if(cambio<=1){cambio=1;} |
SSJprocesa | 0:d9d18ee787ba | 127 | if(cambio>=7){cambio=7;} |
SSJprocesa | 0:d9d18ee787ba | 128 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 129 | lcd.printf(" "); |
SSJprocesa | 0:d9d18ee787ba | 130 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 131 | lcd.printf("%d",cambio); |
SSJprocesa | 0:d9d18ee787ba | 132 | while(chan==0){encoder.reset();cont=7;} |
SSJprocesa | 0:d9d18ee787ba | 133 | } |
SSJprocesa | 0:d9d18ee787ba | 134 | tm.wday=cambio; |
SSJprocesa | 0:d9d18ee787ba | 135 | cambio=0; |
SSJprocesa | 0:d9d18ee787ba | 136 | rtc.setTime(tm, false, false); |
SSJprocesa | 0:d9d18ee787ba | 137 | rtc.startClock();//inicia el conteo en la RTC |
SSJprocesa | 0:d9d18ee787ba | 138 | pla=0; |
SSJprocesa | 0:d9d18ee787ba | 139 | } |
SSJprocesa | 0:d9d18ee787ba | 140 | cont=0; |
SSJprocesa | 0:d9d18ee787ba | 141 | |
SSJprocesa | 0:d9d18ee787ba | 142 | sk2: if(pla2==1)//Rutina para la configuración de los parametros en la Alarma (día,mes,año,hora,minutos,segundos) |
SSJprocesa | 0:d9d18ee787ba | 143 | { |
SSJprocesa | 0:d9d18ee787ba | 144 | buzz=0; |
SSJprocesa | 0:d9d18ee787ba | 145 | ledr=1; |
SSJprocesa | 0:d9d18ee787ba | 146 | jod=0; |
SSJprocesa | 0:d9d18ee787ba | 147 | key=0; |
SSJprocesa | 0:d9d18ee787ba | 148 | while(rl==1){} |
SSJprocesa | 0:d9d18ee787ba | 149 | lcd.cls(); |
SSJprocesa | 0:d9d18ee787ba | 150 | while(cont==0) |
SSJprocesa | 0:d9d18ee787ba | 151 | { |
SSJprocesa | 0:d9d18ee787ba | 152 | lcd.locate(0,0); |
SSJprocesa | 0:d9d18ee787ba | 153 | lcd.printf("alm(Day 1..31)"); |
SSJprocesa | 0:d9d18ee787ba | 154 | cambio=encoder.getPulses(); |
SSJprocesa | 0:d9d18ee787ba | 155 | if(cambio<=1){cambio=1;} |
SSJprocesa | 0:d9d18ee787ba | 156 | if(cambio>=31){cambio=31;} |
SSJprocesa | 0:d9d18ee787ba | 157 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 158 | lcd.printf(" "); |
SSJprocesa | 0:d9d18ee787ba | 159 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 160 | lcd.printf("%d",cambio); |
SSJprocesa | 0:d9d18ee787ba | 161 | while(chan==0){encoder.reset();cont=1;} |
SSJprocesa | 0:d9d18ee787ba | 162 | } |
SSJprocesa | 0:d9d18ee787ba | 163 | di=cambio; |
SSJprocesa | 0:d9d18ee787ba | 164 | cambio=0; |
SSJprocesa | 0:d9d18ee787ba | 165 | while(cont==1) |
SSJprocesa | 0:d9d18ee787ba | 166 | { |
SSJprocesa | 0:d9d18ee787ba | 167 | lcd.locate(0,0); |
SSJprocesa | 0:d9d18ee787ba | 168 | lcd.printf("alm(month 1..12)"); |
SSJprocesa | 0:d9d18ee787ba | 169 | cambio=encoder.getPulses(); |
SSJprocesa | 0:d9d18ee787ba | 170 | if(cambio<=1){cambio=1;} |
SSJprocesa | 0:d9d18ee787ba | 171 | if(cambio>=12){cambio=12;} |
SSJprocesa | 0:d9d18ee787ba | 172 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 173 | lcd.printf(" "); |
SSJprocesa | 0:d9d18ee787ba | 174 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 175 | lcd.printf("%d",cambio); |
SSJprocesa | 0:d9d18ee787ba | 176 | while(chan==0){encoder.reset();cont=2;} |
SSJprocesa | 0:d9d18ee787ba | 177 | } |
SSJprocesa | 0:d9d18ee787ba | 178 | me=cambio; |
SSJprocesa | 0:d9d18ee787ba | 179 | cambio=0; |
SSJprocesa | 0:d9d18ee787ba | 180 | while(cont==2) |
SSJprocesa | 0:d9d18ee787ba | 181 | { |
SSJprocesa | 0:d9d18ee787ba | 182 | lcd.locate(0,0); |
SSJprocesa | 0:d9d18ee787ba | 183 | lcd.printf("alm(year 0..99)"); |
SSJprocesa | 0:d9d18ee787ba | 184 | cambio=encoder.getPulses(); |
SSJprocesa | 0:d9d18ee787ba | 185 | if(cambio<=0){cambio=0;} |
SSJprocesa | 0:d9d18ee787ba | 186 | if(cambio>=99){cambio=99;} |
SSJprocesa | 0:d9d18ee787ba | 187 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 188 | lcd.printf(" "); |
SSJprocesa | 0:d9d18ee787ba | 189 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 190 | lcd.printf("%d",cambio); |
SSJprocesa | 0:d9d18ee787ba | 191 | while(chan==0){encoder.reset();cont=3;} |
SSJprocesa | 0:d9d18ee787ba | 192 | } |
SSJprocesa | 0:d9d18ee787ba | 193 | an=cambio+2000; |
SSJprocesa | 0:d9d18ee787ba | 194 | cambio=0; |
SSJprocesa | 0:d9d18ee787ba | 195 | while(cont==3) |
SSJprocesa | 0:d9d18ee787ba | 196 | { |
SSJprocesa | 0:d9d18ee787ba | 197 | lcd.locate(0,0); |
SSJprocesa | 0:d9d18ee787ba | 198 | lcd.printf("alm(hours 0..23)"); |
SSJprocesa | 0:d9d18ee787ba | 199 | cambio=encoder.getPulses(); |
SSJprocesa | 0:d9d18ee787ba | 200 | if(cambio<=0){cambio=0;} |
SSJprocesa | 0:d9d18ee787ba | 201 | if(cambio>=23){cambio=23;} |
SSJprocesa | 0:d9d18ee787ba | 202 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 203 | lcd.printf(" "); |
SSJprocesa | 0:d9d18ee787ba | 204 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 205 | lcd.printf("%d",cambio); |
SSJprocesa | 0:d9d18ee787ba | 206 | while(chan==0){encoder.reset();cont=4;} |
SSJprocesa | 0:d9d18ee787ba | 207 | } |
SSJprocesa | 0:d9d18ee787ba | 208 | fle=cambio; |
SSJprocesa | 0:d9d18ee787ba | 209 | cambio=0; |
SSJprocesa | 0:d9d18ee787ba | 210 | while(cont==4) |
SSJprocesa | 0:d9d18ee787ba | 211 | { |
SSJprocesa | 0:d9d18ee787ba | 212 | lcd.locate(0,0); |
SSJprocesa | 0:d9d18ee787ba | 213 | lcd.printf("alm(minutes 0..59)"); |
SSJprocesa | 0:d9d18ee787ba | 214 | cambio=encoder.getPulses(); |
SSJprocesa | 0:d9d18ee787ba | 215 | if(cambio<=0){cambio=0;} |
SSJprocesa | 0:d9d18ee787ba | 216 | if(cambio>=59){cambio=59;} |
SSJprocesa | 0:d9d18ee787ba | 217 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 218 | lcd.printf(" "); |
SSJprocesa | 0:d9d18ee787ba | 219 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 220 | lcd.printf("%d",cambio); |
SSJprocesa | 0:d9d18ee787ba | 221 | while(chan==0){encoder.reset();cont=5;} |
SSJprocesa | 0:d9d18ee787ba | 222 | } |
SSJprocesa | 0:d9d18ee787ba | 223 | mi=cambio; |
SSJprocesa | 0:d9d18ee787ba | 224 | cambio=0; |
SSJprocesa | 0:d9d18ee787ba | 225 | while(cont==5) |
SSJprocesa | 0:d9d18ee787ba | 226 | { |
SSJprocesa | 0:d9d18ee787ba | 227 | lcd.locate(0,0); |
SSJprocesa | 0:d9d18ee787ba | 228 | lcd.printf("alm(seconds 0..59)"); |
SSJprocesa | 0:d9d18ee787ba | 229 | cambio=encoder.getPulses(); |
SSJprocesa | 0:d9d18ee787ba | 230 | if(cambio<=0){cambio=0;} |
SSJprocesa | 0:d9d18ee787ba | 231 | if(cambio>=59){cambio=59;} |
SSJprocesa | 0:d9d18ee787ba | 232 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 233 | lcd.printf(" "); |
SSJprocesa | 0:d9d18ee787ba | 234 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 235 | lcd.printf("%d",cambio); |
SSJprocesa | 0:d9d18ee787ba | 236 | while(chan==0){encoder.reset();cont=6;lcd.locate(0,0);lcd.printf("( ");} |
SSJprocesa | 0:d9d18ee787ba | 237 | } |
SSJprocesa | 0:d9d18ee787ba | 238 | se=cambio; |
SSJprocesa | 0:d9d18ee787ba | 239 | cambio=0; |
SSJprocesa | 0:d9d18ee787ba | 240 | pla2=0; |
SSJprocesa | 0:d9d18ee787ba | 241 | } |
SSJprocesa | 0:d9d18ee787ba | 242 | |
SSJprocesa | 0:d9d18ee787ba | 243 | cont=0; |
SSJprocesa | 0:d9d18ee787ba | 244 | cicl: if (rtc.getTime(tm) ) { |
SSJprocesa | 0:d9d18ee787ba | 245 | if(rlo==0){pla=1;goto sk;}//si se presiona va a la configuración de la RTC |
SSJprocesa | 0:d9d18ee787ba | 246 | if(rl==0){pla2=1;goto sk2;}//si se presiona va a la configuración de la Alarma |
SSJprocesa | 0:d9d18ee787ba | 247 | lcd.cls(); |
SSJprocesa | 0:d9d18ee787ba | 248 | lcd.locate(0,0);//muestra el valor de todos los parametros actuales en la RTC |
SSJprocesa | 0:d9d18ee787ba | 249 | lcd.printf("%02d:%02d:%02d", tm.hour, tm.min, tm.sec); |
SSJprocesa | 0:d9d18ee787ba | 250 | lcd.locate(0,1); |
SSJprocesa | 0:d9d18ee787ba | 251 | lcd.printf("%s/%02d/%02d/%4d", rtc.weekdayToString(tm.wday), tm.date, tm.mon, tm.year); |
SSJprocesa | 0:d9d18ee787ba | 252 | if((tm.date==di)&&(tm.mon==me)&&(tm.year==an)&&(tm.hour==fle)&&(tm.min==mi)&&(tm.sec==se)){key=1;}//comparación de la Alarma |
SSJprocesa | 0:d9d18ee787ba | 253 | while(key==1) |
SSJprocesa | 0:d9d18ee787ba | 254 | { |
SSJprocesa | 0:d9d18ee787ba | 255 | jod++; |
SSJprocesa | 0:d9d18ee787ba | 256 | ledr=0;buzz=1; |
SSJprocesa | 0:d9d18ee787ba | 257 | wait(0.5); |
SSJprocesa | 0:d9d18ee787ba | 258 | ledr=1;buzz=0; |
SSJprocesa | 0:d9d18ee787ba | 259 | wait(0.5); |
SSJprocesa | 0:d9d18ee787ba | 260 | if(chan!=1){key=0;jod=0;goto cicl;}//botón que para la Alarma |
SSJprocesa | 0:d9d18ee787ba | 261 | if(jod==7){key=0;mi=mi+1;if(mi==60){mi=0;fle=fle+1;if(fle==24){fle=0;di=di+1;if(di==31){di=1;me=me+1;if(me==12){me=1;an=an+1;}}}}jod=0;//condiciones de salto |
SSJprocesa | 0:d9d18ee787ba | 262 | |
SSJprocesa | 0:d9d18ee787ba | 263 | } |
SSJprocesa | 0:d9d18ee787ba | 264 | } |
SSJprocesa | 0:d9d18ee787ba | 265 | wait(0.2); |
SSJprocesa | 0:d9d18ee787ba | 266 | goto cicl;//blucle infinito hasta que suceda una interrupción |
SSJprocesa | 0:d9d18ee787ba | 267 | } |
SSJprocesa | 0:d9d18ee787ba | 268 | |
SSJprocesa | 0:d9d18ee787ba | 269 | } |
SSJprocesa | 0:d9d18ee787ba | 270 | |
SSJprocesa | 0:d9d18ee787ba | 271 | |
SSJprocesa | 0:d9d18ee787ba | 272 | |
SSJprocesa | 0:d9d18ee787ba | 273 | } |
SSJprocesa | 0:d9d18ee787ba | 274 |