Conjunto de 4 alarmas on/off con reloj de tiempo real

Dependencies:   Debounced QEI RTC-DS1307 TextLCD mbed

Committer:
andJdmat
Date:
Wed Nov 30 01:59:24 2016 +0000
Revision:
0:c498d1d3e2de
Conjunto de 4 alarmas on/off;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
andJdmat 0:c498d1d3e2de 1 #include "mbed.h"
andJdmat 0:c498d1d3e2de 2 #include "DebouncedIn.h"
andJdmat 0:c498d1d3e2de 3 #include "TextLCD.h"
andJdmat 0:c498d1d3e2de 4 #include "QEI.h"
andJdmat 0:c498d1d3e2de 5 #include "Rtc_Ds1307.h"
andJdmat 0:c498d1d3e2de 6
andJdmat 0:c498d1d3e2de 7 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5, TextLCD::LCD20x4); // rs, e, d4-d7 Teclado
andJdmat 0:c498d1d3e2de 8 Rtc_Ds1307 rtc(PTE0, PTE1);//SCL,SDA
andJdmat 0:c498d1d3e2de 9 QEI wheel (PTA13, PTD5, NC, 624, QEI::X4_ENCODING);
andJdmat 0:c498d1d3e2de 10 Serial pc(USBTX, USBRX, "pc");
andJdmat 0:c498d1d3e2de 11 DebouncedIn b_en(PTC16);
andJdmat 0:c498d1d3e2de 12
andJdmat 0:c498d1d3e2de 13
andJdmat 0:c498d1d3e2de 14 DigitalOut red(LED_RED);
andJdmat 0:c498d1d3e2de 15 DigitalOut green(LED_GREEN);
andJdmat 0:c498d1d3e2de 16 DigitalOut blue(LED_BLUE);
andJdmat 0:c498d1d3e2de 17
andJdmat 0:c498d1d3e2de 18 PwmOut Sonido(PTA5);
andJdmat 0:c498d1d3e2de 19
andJdmat 0:c498d1d3e2de 20 float periodo;
andJdmat 0:c498d1d3e2de 21 float Frecuencia=4000;
andJdmat 0:c498d1d3e2de 22 int C1=0x0C;
andJdmat 0:c498d1d3e2de 23 int m,k,x1,x2,x3,x4;
andJdmat 0:c498d1d3e2de 24 int numero=1;
andJdmat 0:c498d1d3e2de 25 int Conf=0; // 0: Alarma y 1:Reloj
andJdmat 0:c498d1d3e2de 26 int Lugar=0; // Definen el punto en el cual va el programa
andJdmat 0:c498d1d3e2de 27 int i=0;
andJdmat 0:c498d1d3e2de 28 int visual=0;
andJdmat 0:c498d1d3e2de 29 int alarma=0;
andJdmat 0:c498d1d3e2de 30 int a = 0;
andJdmat 0:c498d1d3e2de 31
andJdmat 0:c498d1d3e2de 32 int main()
andJdmat 0:c498d1d3e2de 33 {
andJdmat 0:c498d1d3e2de 34 Rtc_Ds1307::Time_rtc t = {};
andJdmat 0:c498d1d3e2de 35 Rtc_Ds1307::Time_rtc Hora = {};
andJdmat 0:c498d1d3e2de 36 Rtc_Ds1307::Time_rtc Alm = {};
andJdmat 0:c498d1d3e2de 37 Rtc_Ds1307::Time_rtc Alm2 = {};
andJdmat 0:c498d1d3e2de 38 Rtc_Ds1307::Time_rtc Alm3 = {};
andJdmat 0:c498d1d3e2de 39 Rtc_Ds1307::Time_rtc Alm4 = {};
andJdmat 0:c498d1d3e2de 40 Rtc_Ds1307::Time_rtc Alm_d = {};
andJdmat 0:c498d1d3e2de 41 Rtc_Ds1307::Time_rtc Alm2_d = {};
andJdmat 0:c498d1d3e2de 42 Rtc_Ds1307::Time_rtc Alm3_d = {};
andJdmat 0:c498d1d3e2de 43 Rtc_Ds1307::Time_rtc Alm4_d = {};
andJdmat 0:c498d1d3e2de 44 lcd.cls();
andJdmat 0:c498d1d3e2de 45 lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD
andJdmat 0:c498d1d3e2de 46
andJdmat 0:c498d1d3e2de 47 periodo=(1/Frecuencia);
andJdmat 0:c498d1d3e2de 48 Sonido.period(periodo);
andJdmat 0:c498d1d3e2de 49
andJdmat 0:c498d1d3e2de 50 rtc.getTime(Hora);
andJdmat 0:c498d1d3e2de 51 rtc.stopClock();
andJdmat 0:c498d1d3e2de 52 while(1){
andJdmat 0:c498d1d3e2de 53 menu:
andJdmat 0:c498d1d3e2de 54 switch (Lugar){
andJdmat 0:c498d1d3e2de 55
andJdmat 0:c498d1d3e2de 56 case 0: //Menu principal
andJdmat 0:c498d1d3e2de 57 lcd.cls();
andJdmat 0:c498d1d3e2de 58 rtc.getTime(Hora); //lee el tiempo del DS1307
andJdmat 0:c498d1d3e2de 59 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 60 lcd.printf("%02d:%02d %02d/%02d/%02d", Hora.hour, Hora.min, Hora.date, Hora.mon, Hora.year);
andJdmat 0:c498d1d3e2de 61 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 62 lcd.printf("-Cambiar Hora");
andJdmat 0:c498d1d3e2de 63 lcd.locate(0,2);
andJdmat 0:c498d1d3e2de 64 lcd.printf("-Cambiar Alarma");
andJdmat 0:c498d1d3e2de 65 lcd.locate(0,3);
andJdmat 0:c498d1d3e2de 66 lcd.printf("-Visualizar");
andJdmat 0:c498d1d3e2de 67 m=wheel.getPulses(); // m son los datos del encoder
andJdmat 0:c498d1d3e2de 68 if(m!=0 && Conf==0){
andJdmat 0:c498d1d3e2de 69 Conf=1;
andJdmat 0:c498d1d3e2de 70 wheel.reset();
andJdmat 0:c498d1d3e2de 71 m=0;
andJdmat 0:c498d1d3e2de 72 }
andJdmat 0:c498d1d3e2de 73 if(m!=0 && Conf==1){
andJdmat 0:c498d1d3e2de 74 Conf=2;
andJdmat 0:c498d1d3e2de 75 wheel.reset();
andJdmat 0:c498d1d3e2de 76 m=0;
andJdmat 0:c498d1d3e2de 77 }
andJdmat 0:c498d1d3e2de 78
andJdmat 0:c498d1d3e2de 79 if(m!=0 && Conf==2){
andJdmat 0:c498d1d3e2de 80 Conf=0;
andJdmat 0:c498d1d3e2de 81 wheel.reset();
andJdmat 0:c498d1d3e2de 82 m=0;
andJdmat 0:c498d1d3e2de 83 }
andJdmat 0:c498d1d3e2de 84 if(Conf==0){
andJdmat 0:c498d1d3e2de 85 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 86 lcd.printf(">");
andJdmat 0:c498d1d3e2de 87 lcd.locate(0,2);
andJdmat 0:c498d1d3e2de 88 lcd.printf("-");
andJdmat 0:c498d1d3e2de 89 lcd.locate(0,3);
andJdmat 0:c498d1d3e2de 90 lcd.printf("-");
andJdmat 0:c498d1d3e2de 91 //lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 92 wait(0.1);
andJdmat 0:c498d1d3e2de 93 }
andJdmat 0:c498d1d3e2de 94 if(Conf==1){
andJdmat 0:c498d1d3e2de 95 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 96 lcd.printf("-");
andJdmat 0:c498d1d3e2de 97 lcd.locate(0,2);
andJdmat 0:c498d1d3e2de 98 lcd.printf(">");
andJdmat 0:c498d1d3e2de 99 lcd.locate(0,3);
andJdmat 0:c498d1d3e2de 100 lcd.printf("-");
andJdmat 0:c498d1d3e2de 101 //lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 102 wait(0.1);
andJdmat 0:c498d1d3e2de 103 }
andJdmat 0:c498d1d3e2de 104
andJdmat 0:c498d1d3e2de 105 if(Conf==2){
andJdmat 0:c498d1d3e2de 106 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 107 lcd.printf("-");
andJdmat 0:c498d1d3e2de 108 lcd.locate(0,2);
andJdmat 0:c498d1d3e2de 109 lcd.printf("-");
andJdmat 0:c498d1d3e2de 110 lcd.locate(0,3);
andJdmat 0:c498d1d3e2de 111 lcd.printf(">");
andJdmat 0:c498d1d3e2de 112 //lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 113 wait(0.1);
andJdmat 0:c498d1d3e2de 114 }
andJdmat 0:c498d1d3e2de 115 if (b_en.falling()){ //si se pulsa boton encoder
andJdmat 0:c498d1d3e2de 116 if(Conf == 0){
andJdmat 0:c498d1d3e2de 117 Lugar++;
andJdmat 0:c498d1d3e2de 118 }
andJdmat 0:c498d1d3e2de 119 if(Conf == 1){
andJdmat 0:c498d1d3e2de 120 Lugar++;
andJdmat 0:c498d1d3e2de 121 }
andJdmat 0:c498d1d3e2de 122 if(Conf == 2){
andJdmat 0:c498d1d3e2de 123 Lugar=3;
andJdmat 0:c498d1d3e2de 124 }
andJdmat 0:c498d1d3e2de 125 m=0;
andJdmat 0:c498d1d3e2de 126 }
andJdmat 0:c498d1d3e2de 127 break;
andJdmat 0:c498d1d3e2de 128
andJdmat 0:c498d1d3e2de 129 case 1://Configurar
andJdmat 0:c498d1d3e2de 130 if(Conf==0){
andJdmat 0:c498d1d3e2de 131 lcd.cls();
andJdmat 0:c498d1d3e2de 132 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 133 lcd.printf("Configurar Hora ");
andJdmat 0:c498d1d3e2de 134 goto hora;
andJdmat 0:c498d1d3e2de 135 }
andJdmat 0:c498d1d3e2de 136
andJdmat 0:c498d1d3e2de 137 if(Conf==1){
andJdmat 0:c498d1d3e2de 138 lcd.cls();
andJdmat 0:c498d1d3e2de 139 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 140 lcd.printf("Configurar Alarma");
andJdmat 0:c498d1d3e2de 141 goto alarm;
andJdmat 0:c498d1d3e2de 142 }
andJdmat 0:c498d1d3e2de 143 if(Conf==2){
andJdmat 0:c498d1d3e2de 144 Lugar=3;
andJdmat 0:c498d1d3e2de 145 }
andJdmat 0:c498d1d3e2de 146 case 2:
andJdmat 0:c498d1d3e2de 147 goto desactivar;
andJdmat 0:c498d1d3e2de 148
andJdmat 0:c498d1d3e2de 149 case 3: //Visualizar y Activacion Alarmas
andJdmat 0:c498d1d3e2de 150 rtc.getTime(Hora);
andJdmat 0:c498d1d3e2de 151 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 152 if(x1==1){
andJdmat 0:c498d1d3e2de 153 red=1;
andJdmat 0:c498d1d3e2de 154 }
andJdmat 0:c498d1d3e2de 155 if(x2==1){
andJdmat 0:c498d1d3e2de 156 green=1;
andJdmat 0:c498d1d3e2de 157 }
andJdmat 0:c498d1d3e2de 158 if(x3==1){
andJdmat 0:c498d1d3e2de 159 blue=1;
andJdmat 0:c498d1d3e2de 160 }
andJdmat 0:c498d1d3e2de 161 if(x4==1){
andJdmat 0:c498d1d3e2de 162 red=1;
andJdmat 0:c498d1d3e2de 163 }
andJdmat 0:c498d1d3e2de 164 if(m!=0){
andJdmat 0:c498d1d3e2de 165 visual=visual+m;
andJdmat 0:c498d1d3e2de 166 if(visual<0){
andJdmat 0:c498d1d3e2de 167 visual=0;
andJdmat 0:c498d1d3e2de 168 }
andJdmat 0:c498d1d3e2de 169 if(visual>4){
andJdmat 0:c498d1d3e2de 170 visual=4;
andJdmat 0:c498d1d3e2de 171 }
andJdmat 0:c498d1d3e2de 172 wheel.reset();
andJdmat 0:c498d1d3e2de 173 m=0;
andJdmat 0:c498d1d3e2de 174 }
andJdmat 0:c498d1d3e2de 175
andJdmat 0:c498d1d3e2de 176 if(visual==0){//Visualiza hora
andJdmat 0:c498d1d3e2de 177 lcd.cls();
andJdmat 0:c498d1d3e2de 178 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 179 lcd.printf(" Ver %02d:%02d:%02d",Hora.hour,Hora.min,Hora.sec);
andJdmat 0:c498d1d3e2de 180 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 181 lcd.printf("Hora :%02d/%02d/%04d",Hora.date,Hora.mon,Hora.year);
andJdmat 0:c498d1d3e2de 182 wait(0.1);
andJdmat 0:c498d1d3e2de 183 }
andJdmat 0:c498d1d3e2de 184 if(visual==1){//Visualilza alarma1
andJdmat 0:c498d1d3e2de 185 lcd.cls();
andJdmat 0:c498d1d3e2de 186 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 187 lcd.printf(" Ver %02d:%02d:%02d",Alm.hour, Alm.min,Alm.sec);
andJdmat 0:c498d1d3e2de 188 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 189 lcd.printf("Alar1: %02d/%02d/%04d",Alm.date,Alm.mon,Alm.year);
andJdmat 0:c498d1d3e2de 190 lcd.locate(0,2);
andJdmat 0:c498d1d3e2de 191 lcd.printf("Desact:%02d:%02d:%02d",Alm_d.hour, Alm_d.min,Alm_d.sec);
andJdmat 0:c498d1d3e2de 192 lcd.locate(0,3);
andJdmat 0:c498d1d3e2de 193 lcd.printf("Alar1: %02d/%02d/%04d",Alm_d.date,Alm_d.mon,Alm_d.year);
andJdmat 0:c498d1d3e2de 194 wait(0.1);
andJdmat 0:c498d1d3e2de 195 }
andJdmat 0:c498d1d3e2de 196 if(visual==2){//Visualiza alarma2
andJdmat 0:c498d1d3e2de 197 lcd.cls();
andJdmat 0:c498d1d3e2de 198 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 199 lcd.printf(" Ver %02d:%02d:%02d",Alm2.hour, Alm2.min,Alm2.sec);
andJdmat 0:c498d1d3e2de 200 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 201 lcd.printf("Alar2: %02d/%02d/%04d",Alm2.date,Alm2.mon,Alm2.year);
andJdmat 0:c498d1d3e2de 202 lcd.locate(0,2);
andJdmat 0:c498d1d3e2de 203 lcd.printf("Desact %02d:%02d:%02d",Alm2_d.hour, Alm2_d.min,Alm2_d.sec);
andJdmat 0:c498d1d3e2de 204 lcd.locate(0,3);
andJdmat 0:c498d1d3e2de 205 lcd.printf("Alar2: %02d/%02d/%04d",Alm2_d.date,Alm2_d.mon,Alm2_d.year);
andJdmat 0:c498d1d3e2de 206 wait(0.1);
andJdmat 0:c498d1d3e2de 207 }
andJdmat 0:c498d1d3e2de 208 if(visual==3){//Visualiza alarma3
andJdmat 0:c498d1d3e2de 209 lcd.cls();
andJdmat 0:c498d1d3e2de 210 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 211 lcd.printf(" Ver %02d:%02d:%02d",Alm3.hour, Alm3.min,Alm3.sec);
andJdmat 0:c498d1d3e2de 212 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 213 lcd.printf("Alar3: %02d/%02d/%04d",Alm3.date,Alm3.mon,Alm3.year);
andJdmat 0:c498d1d3e2de 214 lcd.locate(0,2);
andJdmat 0:c498d1d3e2de 215 lcd.printf("Desact: %02d:%02d:%02d",Alm3_d.hour, Alm3_d.min,Alm3_d.sec);
andJdmat 0:c498d1d3e2de 216 lcd.locate(0,3);
andJdmat 0:c498d1d3e2de 217 lcd.printf("Alar3: %02d/%02d/%04d",Alm3_d.date,Alm3_d.mon,Alm3_d.year);
andJdmat 0:c498d1d3e2de 218 wait(0.1);
andJdmat 0:c498d1d3e2de 219
andJdmat 0:c498d1d3e2de 220 }
andJdmat 0:c498d1d3e2de 221 if(visual==4){//Visualiza alarma4
andJdmat 0:c498d1d3e2de 222 lcd.cls();
andJdmat 0:c498d1d3e2de 223 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 224 lcd.printf(" Ver %02d:%02d:%02d",Alm4.hour, Alm4.min,Alm4.sec);
andJdmat 0:c498d1d3e2de 225 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 226 lcd.printf("Alar4: %02d/%02d/%04d",Alm4.date,Alm4.mon,Alm4.year);
andJdmat 0:c498d1d3e2de 227 lcd.locate(0,2);
andJdmat 0:c498d1d3e2de 228 lcd.printf("Desact: %02d:%02d:%02d",Alm4_d.hour, Alm4_d.min,Alm4_d.sec);
andJdmat 0:c498d1d3e2de 229 lcd.locate(0,3);
andJdmat 0:c498d1d3e2de 230 lcd.printf("Alar4: %02d/%02d/%04d",Alm4_d.date,Alm4_d.mon,Alm4_d.year);
andJdmat 0:c498d1d3e2de 231 wait(0.1);
andJdmat 0:c498d1d3e2de 232 }
andJdmat 0:c498d1d3e2de 233
andJdmat 0:c498d1d3e2de 234 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 235 lcd.cls();
andJdmat 0:c498d1d3e2de 236 Lugar=0;
andJdmat 0:c498d1d3e2de 237 }
andJdmat 0:c498d1d3e2de 238 //Activacion Alarma1
andJdmat 0:c498d1d3e2de 239 if((Hora.date==Alm.date)&&(Hora.mon==Alm.mon)&&(Hora.year==Alm.year)&&(Hora.hour==Alm.hour)&&(Hora.min==Alm.min)&&(Hora.sec==Alm.sec))
andJdmat 0:c498d1d3e2de 240 {
andJdmat 0:c498d1d3e2de 241 lcd.cls();
andJdmat 0:c498d1d3e2de 242 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 243 lcd.printf("Alarma 1 Activa!!");
andJdmat 0:c498d1d3e2de 244 red =0;
andJdmat 0:c498d1d3e2de 245 wait(.2);
andJdmat 0:c498d1d3e2de 246 red =1;
andJdmat 0:c498d1d3e2de 247 wait(.2);
andJdmat 0:c498d1d3e2de 248 red =0;
andJdmat 0:c498d1d3e2de 249 wait(.2);
andJdmat 0:c498d1d3e2de 250 red =1;
andJdmat 0:c498d1d3e2de 251 wait(.2);
andJdmat 0:c498d1d3e2de 252 red =0;
andJdmat 0:c498d1d3e2de 253 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 254 lcd.printf("Esperando Desactivacion");
andJdmat 0:c498d1d3e2de 255 wait(1);
andJdmat 0:c498d1d3e2de 256 m=0;
andJdmat 0:c498d1d3e2de 257 k=1;
andJdmat 0:c498d1d3e2de 258 alarma = 1;
andJdmat 0:c498d1d3e2de 259 goto menu;
andJdmat 0:c498d1d3e2de 260 }
andJdmat 0:c498d1d3e2de 261
andJdmat 0:c498d1d3e2de 262 //Activacion Alarma2
andJdmat 0:c498d1d3e2de 263 if((Hora.date==Alm2.date)&&(Hora.mon==Alm2.mon)&&(Hora.year==Alm2.year)&&(Hora.hour==Alm2.hour)&&(Hora.min==Alm2.min)&&(Hora.sec==Alm2.sec))
andJdmat 0:c498d1d3e2de 264 {
andJdmat 0:c498d1d3e2de 265 lcd.cls();
andJdmat 0:c498d1d3e2de 266 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 267 lcd.printf("Alarma 2 Activa!!");
andJdmat 0:c498d1d3e2de 268 green =0;
andJdmat 0:c498d1d3e2de 269 wait(.2);
andJdmat 0:c498d1d3e2de 270 green =1;
andJdmat 0:c498d1d3e2de 271 wait(.2);
andJdmat 0:c498d1d3e2de 272 green =0;
andJdmat 0:c498d1d3e2de 273 wait(.2);
andJdmat 0:c498d1d3e2de 274 green =1;
andJdmat 0:c498d1d3e2de 275 wait(.2);
andJdmat 0:c498d1d3e2de 276 green =0;
andJdmat 0:c498d1d3e2de 277 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 278 lcd.printf("Esperando desactivacion");
andJdmat 0:c498d1d3e2de 279 wait(1);
andJdmat 0:c498d1d3e2de 280 Lugar = 3;
andJdmat 0:c498d1d3e2de 281 m=0;
andJdmat 0:c498d1d3e2de 282 k=2;
andJdmat 0:c498d1d3e2de 283 alarma = 1;
andJdmat 0:c498d1d3e2de 284 goto menu;
andJdmat 0:c498d1d3e2de 285 }
andJdmat 0:c498d1d3e2de 286
andJdmat 0:c498d1d3e2de 287 //Activacion Alarma3
andJdmat 0:c498d1d3e2de 288 if((Hora.date==Alm3.date)&&(Hora.mon==Alm3.mon)&&(Hora.year==Alm3.year)&&(Hora.hour==Alm3.hour)&&(Hora.min==Alm3.min)&&(Hora.sec==Alm3.sec))
andJdmat 0:c498d1d3e2de 289 {
andJdmat 0:c498d1d3e2de 290 lcd.cls();
andJdmat 0:c498d1d3e2de 291 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 292 lcd.printf("Alarma 3 Activa!!");
andJdmat 0:c498d1d3e2de 293 blue =0;
andJdmat 0:c498d1d3e2de 294 wait(.2);
andJdmat 0:c498d1d3e2de 295 blue =1;
andJdmat 0:c498d1d3e2de 296 wait(.2);
andJdmat 0:c498d1d3e2de 297 blue =0;
andJdmat 0:c498d1d3e2de 298 wait(.2);
andJdmat 0:c498d1d3e2de 299 blue =1;
andJdmat 0:c498d1d3e2de 300 wait(.2);
andJdmat 0:c498d1d3e2de 301 blue =0;
andJdmat 0:c498d1d3e2de 302 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 303 lcd.printf("Esperando desactivacion");
andJdmat 0:c498d1d3e2de 304 wait(1);
andJdmat 0:c498d1d3e2de 305 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 306 m=0;
andJdmat 0:c498d1d3e2de 307 k=3;
andJdmat 0:c498d1d3e2de 308 alarma = 1;
andJdmat 0:c498d1d3e2de 309 goto menu;
andJdmat 0:c498d1d3e2de 310 }
andJdmat 0:c498d1d3e2de 311 //Activacion Alarma4
andJdmat 0:c498d1d3e2de 312 if((Hora.date==Alm4.date)&&(Hora.mon==Alm4.mon)&&(Hora.year==Alm4.year)&&(Hora.hour==Alm4.hour)&&(Hora.min==Alm4.min)&&(Hora.sec==Alm4.sec))
andJdmat 0:c498d1d3e2de 313 {
andJdmat 0:c498d1d3e2de 314 lcd.cls();
andJdmat 0:c498d1d3e2de 315 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 316 lcd.printf("Alarma 4 Activa!!");
andJdmat 0:c498d1d3e2de 317 red =0;
andJdmat 0:c498d1d3e2de 318 wait(.2);
andJdmat 0:c498d1d3e2de 319 red =1;
andJdmat 0:c498d1d3e2de 320 wait(.2);
andJdmat 0:c498d1d3e2de 321 red =0;
andJdmat 0:c498d1d3e2de 322 wait(.2);
andJdmat 0:c498d1d3e2de 323 red =1;
andJdmat 0:c498d1d3e2de 324 wait(.2);
andJdmat 0:c498d1d3e2de 325 red =0;
andJdmat 0:c498d1d3e2de 326 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 327 lcd.printf("Esperando desactivacion");
andJdmat 0:c498d1d3e2de 328 wait(1);
andJdmat 0:c498d1d3e2de 329 m=0;
andJdmat 0:c498d1d3e2de 330 alarma =1;
andJdmat 0:c498d1d3e2de 331 k=4;
andJdmat 0:c498d1d3e2de 332 }
andJdmat 0:c498d1d3e2de 333
andJdmat 0:c498d1d3e2de 334 //Desactivar Alarma
andJdmat 0:c498d1d3e2de 335
andJdmat 0:c498d1d3e2de 336 if(alarma==1){
andJdmat 0:c498d1d3e2de 337 Sonido.write(0.5);
andJdmat 0:c498d1d3e2de 338 red = 0;
andJdmat 0:c498d1d3e2de 339 wait(0.2);
andJdmat 0:c498d1d3e2de 340 red = 1;
andJdmat 0:c498d1d3e2de 341 Sonido.write(0);
andJdmat 0:c498d1d3e2de 342 wait(0.2);
andJdmat 0:c498d1d3e2de 343 blue = 0;
andJdmat 0:c498d1d3e2de 344 Sonido.write(0.5);
andJdmat 0:c498d1d3e2de 345 wait(0.2);
andJdmat 0:c498d1d3e2de 346 blue = 1;
andJdmat 0:c498d1d3e2de 347 Sonido.write(0);
andJdmat 0:c498d1d3e2de 348 wait(0.2);
andJdmat 0:c498d1d3e2de 349 }
andJdmat 0:c498d1d3e2de 350 //Desactivacion Alarma1
andJdmat 0:c498d1d3e2de 351 if((Hora.date==Alm_d.date)&&(Hora.mon==Alm_d.mon)&&(Hora.year==Alm_d.year)&&(Hora.hour==Alm_d.hour)&&(Hora.min==Alm_d.min)&&(Hora.sec==Alm_d.sec))
andJdmat 0:c498d1d3e2de 352 {
andJdmat 0:c498d1d3e2de 353 lcd.cls();
andJdmat 0:c498d1d3e2de 354 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 355 lcd.printf("Alarma 1 Desactivada");
andJdmat 0:c498d1d3e2de 356 wait(1);
andJdmat 0:c498d1d3e2de 357 red =0;
andJdmat 0:c498d1d3e2de 358 wait(.2);
andJdmat 0:c498d1d3e2de 359 red =1;
andJdmat 0:c498d1d3e2de 360 wait(.2);
andJdmat 0:c498d1d3e2de 361 red =0;
andJdmat 0:c498d1d3e2de 362 wait(.2);
andJdmat 0:c498d1d3e2de 363 red =1;
andJdmat 0:c498d1d3e2de 364 wait(.2);
andJdmat 0:c498d1d3e2de 365 red =0;
andJdmat 0:c498d1d3e2de 366 lcd.cls();
andJdmat 0:c498d1d3e2de 367 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 368 lcd.printf("Adios");
andJdmat 0:c498d1d3e2de 369 alarma = 0;
andJdmat 0:c498d1d3e2de 370 wait(1);
andJdmat 0:c498d1d3e2de 371 m=0;
andJdmat 0:c498d1d3e2de 372 k=1;
andJdmat 0:c498d1d3e2de 373 }
andJdmat 0:c498d1d3e2de 374
andJdmat 0:c498d1d3e2de 375 //Desactivacion Alarma2
andJdmat 0:c498d1d3e2de 376 if((Hora.date==Alm2_d.date)&&(Hora.mon==Alm2_d.mon)&&(Hora.year==Alm2_d.year)&&(Hora.hour==Alm2_d.hour)&&(Hora.min==Alm2_d.min)&&(Hora.sec==Alm2_d.sec))
andJdmat 0:c498d1d3e2de 377 {
andJdmat 0:c498d1d3e2de 378 lcd.cls();
andJdmat 0:c498d1d3e2de 379 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 380 lcd.printf("Alarma 2 Desactivada");
andJdmat 0:c498d1d3e2de 381 wait(1);
andJdmat 0:c498d1d3e2de 382 green =0;
andJdmat 0:c498d1d3e2de 383 wait(.2);
andJdmat 0:c498d1d3e2de 384 green =1;
andJdmat 0:c498d1d3e2de 385 wait(.2);
andJdmat 0:c498d1d3e2de 386 green =0;
andJdmat 0:c498d1d3e2de 387 wait(.2);
andJdmat 0:c498d1d3e2de 388 green =1;
andJdmat 0:c498d1d3e2de 389 wait(.2);
andJdmat 0:c498d1d3e2de 390 green =0;
andJdmat 0:c498d1d3e2de 391 lcd.cls();
andJdmat 0:c498d1d3e2de 392 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 393 lcd.printf("Adios");
andJdmat 0:c498d1d3e2de 394 alarma = 0;
andJdmat 0:c498d1d3e2de 395 wait(1);
andJdmat 0:c498d1d3e2de 396 m=0;
andJdmat 0:c498d1d3e2de 397 k=2;
andJdmat 0:c498d1d3e2de 398 }
andJdmat 0:c498d1d3e2de 399
andJdmat 0:c498d1d3e2de 400 //Desactivacion Alarma3
andJdmat 0:c498d1d3e2de 401 if((Hora.date==Alm3_d.date)&&(Hora.mon==Alm3_d.mon)&&(Hora.year==Alm3_d.year)&&(Hora.hour==Alm3_d.hour)&&(Hora.min==Alm3_d.min)&&(Hora.sec==Alm3_d.sec))
andJdmat 0:c498d1d3e2de 402 {
andJdmat 0:c498d1d3e2de 403 lcd.cls();
andJdmat 0:c498d1d3e2de 404 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 405 lcd.printf("Alarma 3 Desactivada");
andJdmat 0:c498d1d3e2de 406 blue =0;
andJdmat 0:c498d1d3e2de 407 wait(.2);
andJdmat 0:c498d1d3e2de 408 blue =1;
andJdmat 0:c498d1d3e2de 409 wait(.2);
andJdmat 0:c498d1d3e2de 410 blue =0;
andJdmat 0:c498d1d3e2de 411 wait(.2);
andJdmat 0:c498d1d3e2de 412 blue =1;
andJdmat 0:c498d1d3e2de 413 wait(.2);
andJdmat 0:c498d1d3e2de 414 blue =0;
andJdmat 0:c498d1d3e2de 415 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 416 lcd.printf("Adios");
andJdmat 0:c498d1d3e2de 417 wait(1);
andJdmat 0:c498d1d3e2de 418 m=0;
andJdmat 0:c498d1d3e2de 419 alarma = 0;
andJdmat 0:c498d1d3e2de 420 k=3;
andJdmat 0:c498d1d3e2de 421 }
andJdmat 0:c498d1d3e2de 422 //Desactivacion Alarma4
andJdmat 0:c498d1d3e2de 423 if((Hora.date==Alm4_d.date)&&(Hora.mon==Alm4_d.mon)&&(Hora.year==Alm4_d.year)&&(Hora.hour==Alm4_d.hour)&&(Hora.min==Alm4_d.min)&&(Hora.sec==Alm4_d.sec))
andJdmat 0:c498d1d3e2de 424 {
andJdmat 0:c498d1d3e2de 425 lcd.cls();
andJdmat 0:c498d1d3e2de 426 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 427 lcd.printf("Alarma 4 Desactivada");
andJdmat 0:c498d1d3e2de 428 wait(1);
andJdmat 0:c498d1d3e2de 429 red =0;
andJdmat 0:c498d1d3e2de 430 wait(.2);
andJdmat 0:c498d1d3e2de 431 red =1;
andJdmat 0:c498d1d3e2de 432 wait(.2);
andJdmat 0:c498d1d3e2de 433 red =0;
andJdmat 0:c498d1d3e2de 434 wait(.2);
andJdmat 0:c498d1d3e2de 435 red =1;
andJdmat 0:c498d1d3e2de 436 wait(.2);
andJdmat 0:c498d1d3e2de 437 red =0;
andJdmat 0:c498d1d3e2de 438 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 439 lcd.printf("Adios");
andJdmat 0:c498d1d3e2de 440 alarma = 0;
andJdmat 0:c498d1d3e2de 441 wait(1);
andJdmat 0:c498d1d3e2de 442 m=0;
andJdmat 0:c498d1d3e2de 443 k=4;
andJdmat 0:c498d1d3e2de 444 }
andJdmat 0:c498d1d3e2de 445 ///////////////////
andJdmat 0:c498d1d3e2de 446
andJdmat 0:c498d1d3e2de 447 break;
andJdmat 0:c498d1d3e2de 448
andJdmat 0:c498d1d3e2de 449
andJdmat 0:c498d1d3e2de 450 }
andJdmat 0:c498d1d3e2de 451 }
andJdmat 0:c498d1d3e2de 452
andJdmat 0:c498d1d3e2de 453 // Lazo de config de hora
andJdmat 0:c498d1d3e2de 454
andJdmat 0:c498d1d3e2de 455 hora:
andJdmat 0:c498d1d3e2de 456 int i = 0;
andJdmat 0:c498d1d3e2de 457 wait(1);
andJdmat 0:c498d1d3e2de 458 lcd.cls();
andJdmat 0:c498d1d3e2de 459 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 460 lcd.printf("Segundos: ");
andJdmat 0:c498d1d3e2de 461 Hora.sec=0;
andJdmat 0:c498d1d3e2de 462 m=0;
andJdmat 0:c498d1d3e2de 463 while(i == 0){
andJdmat 0:c498d1d3e2de 464 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 465 if (m!=0){
andJdmat 0:c498d1d3e2de 466 Hora.sec=Hora.sec+m;
andJdmat 0:c498d1d3e2de 467 if(Hora.sec>59){
andJdmat 0:c498d1d3e2de 468 Hora.sec=59;
andJdmat 0:c498d1d3e2de 469 }
andJdmat 0:c498d1d3e2de 470 if(Hora.sec<0){
andJdmat 0:c498d1d3e2de 471 Hora.sec=0;
andJdmat 0:c498d1d3e2de 472 }
andJdmat 0:c498d1d3e2de 473 wheel.reset();
andJdmat 0:c498d1d3e2de 474 m=0;
andJdmat 0:c498d1d3e2de 475 }
andJdmat 0:c498d1d3e2de 476 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 477 lcd.printf(" ");
andJdmat 0:c498d1d3e2de 478 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 479 lcd.printf("%02d",Hora.sec);
andJdmat 0:c498d1d3e2de 480
andJdmat 0:c498d1d3e2de 481 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 482 lcd.cls();
andJdmat 0:c498d1d3e2de 483 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 484 lcd.printf("Minutos: ");
andJdmat 0:c498d1d3e2de 485 Hora.min = 0;
andJdmat 0:c498d1d3e2de 486 i++;
andJdmat 0:c498d1d3e2de 487 m=0;
andJdmat 0:c498d1d3e2de 488 }
andJdmat 0:c498d1d3e2de 489 }
andJdmat 0:c498d1d3e2de 490 while(i == 1){
andJdmat 0:c498d1d3e2de 491 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 492 if (m!=0){
andJdmat 0:c498d1d3e2de 493 Hora.min=Hora.min+m;
andJdmat 0:c498d1d3e2de 494 if(Hora.min>59){
andJdmat 0:c498d1d3e2de 495 Hora.min=59;
andJdmat 0:c498d1d3e2de 496 }
andJdmat 0:c498d1d3e2de 497 if(Hora.min<0){
andJdmat 0:c498d1d3e2de 498 Hora.min=0;
andJdmat 0:c498d1d3e2de 499 }
andJdmat 0:c498d1d3e2de 500 wheel.reset();
andJdmat 0:c498d1d3e2de 501 m=0;
andJdmat 0:c498d1d3e2de 502 }
andJdmat 0:c498d1d3e2de 503 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 504 lcd.printf(" ");
andJdmat 0:c498d1d3e2de 505 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 506 lcd.printf("%02d",Hora.min);
andJdmat 0:c498d1d3e2de 507 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 508 lcd.cls();
andJdmat 0:c498d1d3e2de 509 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 510 lcd.printf("Hora: ");
andJdmat 0:c498d1d3e2de 511 Hora.hour = 0;
andJdmat 0:c498d1d3e2de 512 i++;
andJdmat 0:c498d1d3e2de 513 m=0;
andJdmat 0:c498d1d3e2de 514 }
andJdmat 0:c498d1d3e2de 515 }
andJdmat 0:c498d1d3e2de 516
andJdmat 0:c498d1d3e2de 517 while(i == 2){
andJdmat 0:c498d1d3e2de 518 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 519 if (m!=0){
andJdmat 0:c498d1d3e2de 520 Hora.hour=Hora.hour+m;
andJdmat 0:c498d1d3e2de 521 if(Hora.hour>12){
andJdmat 0:c498d1d3e2de 522 Hora.hour=12;
andJdmat 0:c498d1d3e2de 523 }
andJdmat 0:c498d1d3e2de 524 if(Hora.hour<0){
andJdmat 0:c498d1d3e2de 525 Hora.hour=0;
andJdmat 0:c498d1d3e2de 526 }
andJdmat 0:c498d1d3e2de 527 wheel.reset();
andJdmat 0:c498d1d3e2de 528 m=0;
andJdmat 0:c498d1d3e2de 529 }
andJdmat 0:c498d1d3e2de 530 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 531 lcd.printf("%02d",Hora.hour);
andJdmat 0:c498d1d3e2de 532 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 533 lcd.cls();
andJdmat 0:c498d1d3e2de 534 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 535 lcd.printf("Hora definida: ");
andJdmat 0:c498d1d3e2de 536 wait(1);
andJdmat 0:c498d1d3e2de 537 lcd.cls();
andJdmat 0:c498d1d3e2de 538 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 539 lcd.printf("Fecha: ");
andJdmat 0:c498d1d3e2de 540 wait(1);
andJdmat 0:c498d1d3e2de 541 lcd.cls();
andJdmat 0:c498d1d3e2de 542 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 543 lcd.printf("Dia: ");
andJdmat 0:c498d1d3e2de 544 Hora.date = 1;
andJdmat 0:c498d1d3e2de 545 i++;
andJdmat 0:c498d1d3e2de 546 m=0;
andJdmat 0:c498d1d3e2de 547 }
andJdmat 0:c498d1d3e2de 548 }
andJdmat 0:c498d1d3e2de 549
andJdmat 0:c498d1d3e2de 550
andJdmat 0:c498d1d3e2de 551 while (i == 3){
andJdmat 0:c498d1d3e2de 552 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 553 if (m!=0){
andJdmat 0:c498d1d3e2de 554 Hora.date=Hora.date+m;
andJdmat 0:c498d1d3e2de 555 if(Hora.date>59){
andJdmat 0:c498d1d3e2de 556 Hora.date=59;
andJdmat 0:c498d1d3e2de 557 }
andJdmat 0:c498d1d3e2de 558 if(Hora.date<1){
andJdmat 0:c498d1d3e2de 559 Hora.date=1;
andJdmat 0:c498d1d3e2de 560 }
andJdmat 0:c498d1d3e2de 561 wheel.reset();
andJdmat 0:c498d1d3e2de 562 m=0;
andJdmat 0:c498d1d3e2de 563 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 564 lcd.printf("%02d",Hora.date);
andJdmat 0:c498d1d3e2de 565 }
andJdmat 0:c498d1d3e2de 566
andJdmat 0:c498d1d3e2de 567 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 568 i++;
andJdmat 0:c498d1d3e2de 569 m=0;
andJdmat 0:c498d1d3e2de 570 lcd.cls();
andJdmat 0:c498d1d3e2de 571 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 572 lcd.printf("Mes: ");
andJdmat 0:c498d1d3e2de 573 Hora.mon = 1;
andJdmat 0:c498d1d3e2de 574
andJdmat 0:c498d1d3e2de 575 }
andJdmat 0:c498d1d3e2de 576 }
andJdmat 0:c498d1d3e2de 577
andJdmat 0:c498d1d3e2de 578 while (i == 4){
andJdmat 0:c498d1d3e2de 579 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 580 if (m!=0){
andJdmat 0:c498d1d3e2de 581 Hora.mon=Hora.mon+m;
andJdmat 0:c498d1d3e2de 582 if(Hora.mon>12){
andJdmat 0:c498d1d3e2de 583 Hora.mon=12;
andJdmat 0:c498d1d3e2de 584 }
andJdmat 0:c498d1d3e2de 585 if(Hora.mon<1){
andJdmat 0:c498d1d3e2de 586 Hora.mon=1;
andJdmat 0:c498d1d3e2de 587 }
andJdmat 0:c498d1d3e2de 588 wheel.reset();
andJdmat 0:c498d1d3e2de 589 m=0;
andJdmat 0:c498d1d3e2de 590 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 591 lcd.printf("%02d",Hora.mon);
andJdmat 0:c498d1d3e2de 592 }
andJdmat 0:c498d1d3e2de 593
andJdmat 0:c498d1d3e2de 594 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 595 i++;
andJdmat 0:c498d1d3e2de 596 m=0;
andJdmat 0:c498d1d3e2de 597 lcd.cls();
andJdmat 0:c498d1d3e2de 598 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 599 lcd.printf("Ano: ");
andJdmat 0:c498d1d3e2de 600 Hora.year = 2016;
andJdmat 0:c498d1d3e2de 601 }
andJdmat 0:c498d1d3e2de 602 }
andJdmat 0:c498d1d3e2de 603 while (i == 5){
andJdmat 0:c498d1d3e2de 604 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 605 if (m!=0){
andJdmat 0:c498d1d3e2de 606 Hora.year=Hora.year+m;
andJdmat 0:c498d1d3e2de 607
andJdmat 0:c498d1d3e2de 608 if(Hora.year<2016){
andJdmat 0:c498d1d3e2de 609 Hora.year=2016;
andJdmat 0:c498d1d3e2de 610 }
andJdmat 0:c498d1d3e2de 611 wheel.reset();
andJdmat 0:c498d1d3e2de 612 m=0;
andJdmat 0:c498d1d3e2de 613 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 614 lcd.printf("%02d",Hora.year);
andJdmat 0:c498d1d3e2de 615 }
andJdmat 0:c498d1d3e2de 616
andJdmat 0:c498d1d3e2de 617 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 618 i++;
andJdmat 0:c498d1d3e2de 619 m=0;
andJdmat 0:c498d1d3e2de 620 lcd.cls();
andJdmat 0:c498d1d3e2de 621 rtc.setTime(Hora, false, false);
andJdmat 0:c498d1d3e2de 622 rtc.startClock();
andJdmat 0:c498d1d3e2de 623 }
andJdmat 0:c498d1d3e2de 624 }
andJdmat 0:c498d1d3e2de 625
andJdmat 0:c498d1d3e2de 626
andJdmat 0:c498d1d3e2de 627 while(i == 6){
andJdmat 0:c498d1d3e2de 628
andJdmat 0:c498d1d3e2de 629 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 630 lcd.printf("Esperando Hora ");
andJdmat 0:c498d1d3e2de 631 if(rtc.getTime(Hora)){
andJdmat 0:c498d1d3e2de 632
andJdmat 0:c498d1d3e2de 633 pc.printf("La hora actual es : %02d:%02d:%02d\n", Hora.hour, Hora.min, Hora.sec); // Me entrega la hora actual
andJdmat 0:c498d1d3e2de 634 red = 0;
andJdmat 0:c498d1d3e2de 635 lcd.cls();
andJdmat 0:c498d1d3e2de 636 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 637 lcd.printf("Hora: ");
andJdmat 0:c498d1d3e2de 638 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 639 lcd.printf("%02d:%02d:%02d", Hora.hour, Hora.min,Hora.sec);
andJdmat 0:c498d1d3e2de 640 red = 1;
andJdmat 0:c498d1d3e2de 641 wait(1);
andJdmat 0:c498d1d3e2de 642 }
andJdmat 0:c498d1d3e2de 643 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 644 i++;
andJdmat 0:c498d1d3e2de 645 Lugar = 3;
andJdmat 0:c498d1d3e2de 646 }
andJdmat 0:c498d1d3e2de 647 }
andJdmat 0:c498d1d3e2de 648
andJdmat 0:c498d1d3e2de 649 while(i == 7){
andJdmat 0:c498d1d3e2de 650 goto menu;
andJdmat 0:c498d1d3e2de 651 }
andJdmat 0:c498d1d3e2de 652
andJdmat 0:c498d1d3e2de 653
andJdmat 0:c498d1d3e2de 654
andJdmat 0:c498d1d3e2de 655 // Lazo de Config Alarmas
andJdmat 0:c498d1d3e2de 656
andJdmat 0:c498d1d3e2de 657 alarm:
andJdmat 0:c498d1d3e2de 658 int pos=1;
andJdmat 0:c498d1d3e2de 659 int l =0;
andJdmat 0:c498d1d3e2de 660
andJdmat 0:c498d1d3e2de 661 while(l == 0){
andJdmat 0:c498d1d3e2de 662 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 663 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 664 lcd.printf("Configurar Alarma %02d",pos);
andJdmat 0:c498d1d3e2de 665 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 666 lcd.printf("-1 -2 -3 -4");
andJdmat 0:c498d1d3e2de 667 if (m!=0){
andJdmat 0:c498d1d3e2de 668 pos=pos+m;
andJdmat 0:c498d1d3e2de 669 if(pos<1){
andJdmat 0:c498d1d3e2de 670 pos=1;
andJdmat 0:c498d1d3e2de 671 }
andJdmat 0:c498d1d3e2de 672 if(pos>4){
andJdmat 0:c498d1d3e2de 673 pos=4;
andJdmat 0:c498d1d3e2de 674 }
andJdmat 0:c498d1d3e2de 675 wheel.reset();
andJdmat 0:c498d1d3e2de 676 m=0;
andJdmat 0:c498d1d3e2de 677 }
andJdmat 0:c498d1d3e2de 678 if(pos==1){
andJdmat 0:c498d1d3e2de 679 red =0;
andJdmat 0:c498d1d3e2de 680 green =1;
andJdmat 0:c498d1d3e2de 681 blue =1;
andJdmat 0:c498d1d3e2de 682 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 683 lcd.printf(">");
andJdmat 0:c498d1d3e2de 684 lcd.locate(4,1);
andJdmat 0:c498d1d3e2de 685 lcd.printf("-");
andJdmat 0:c498d1d3e2de 686 lcd.locate(9,1);
andJdmat 0:c498d1d3e2de 687 lcd.printf("-");
andJdmat 0:c498d1d3e2de 688 lcd.locate(13,1);
andJdmat 0:c498d1d3e2de 689 lcd.printf("-");
andJdmat 0:c498d1d3e2de 690 wait(0.1);
andJdmat 0:c498d1d3e2de 691 }
andJdmat 0:c498d1d3e2de 692 if(pos==2){
andJdmat 0:c498d1d3e2de 693 red =1;
andJdmat 0:c498d1d3e2de 694 green =0;
andJdmat 0:c498d1d3e2de 695 blue =1;
andJdmat 0:c498d1d3e2de 696 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 697 lcd.printf("-");
andJdmat 0:c498d1d3e2de 698 lcd.locate(4,1);
andJdmat 0:c498d1d3e2de 699 lcd.printf(">");
andJdmat 0:c498d1d3e2de 700 lcd.locate(9,1);
andJdmat 0:c498d1d3e2de 701 lcd.printf("-");
andJdmat 0:c498d1d3e2de 702 lcd.locate(13,1);
andJdmat 0:c498d1d3e2de 703 lcd.printf("-");
andJdmat 0:c498d1d3e2de 704 wait(0.1);
andJdmat 0:c498d1d3e2de 705 }
andJdmat 0:c498d1d3e2de 706 if(pos==3){
andJdmat 0:c498d1d3e2de 707 red =1;
andJdmat 0:c498d1d3e2de 708 green =1;
andJdmat 0:c498d1d3e2de 709 blue =0;
andJdmat 0:c498d1d3e2de 710 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 711 lcd.printf("-");
andJdmat 0:c498d1d3e2de 712 lcd.locate(4,1);
andJdmat 0:c498d1d3e2de 713 lcd.printf("-");
andJdmat 0:c498d1d3e2de 714 lcd.locate(9,1);
andJdmat 0:c498d1d3e2de 715 lcd.printf(">");
andJdmat 0:c498d1d3e2de 716 lcd.locate(13,1);
andJdmat 0:c498d1d3e2de 717 lcd.printf("-");
andJdmat 0:c498d1d3e2de 718 wait(0.1);
andJdmat 0:c498d1d3e2de 719 }
andJdmat 0:c498d1d3e2de 720 if(pos==4){
andJdmat 0:c498d1d3e2de 721 red =0;
andJdmat 0:c498d1d3e2de 722 green =0;
andJdmat 0:c498d1d3e2de 723 blue =0;
andJdmat 0:c498d1d3e2de 724 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 725 lcd.printf("-");
andJdmat 0:c498d1d3e2de 726 lcd.locate(4,1);
andJdmat 0:c498d1d3e2de 727 lcd.printf("-");
andJdmat 0:c498d1d3e2de 728 lcd.locate(9,1);
andJdmat 0:c498d1d3e2de 729 lcd.printf("-");
andJdmat 0:c498d1d3e2de 730 lcd.locate(13,1);
andJdmat 0:c498d1d3e2de 731 lcd.printf(">");
andJdmat 0:c498d1d3e2de 732 wait(0.1);
andJdmat 0:c498d1d3e2de 733 }
andJdmat 0:c498d1d3e2de 734
andJdmat 0:c498d1d3e2de 735 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 736 m=0;
andJdmat 0:c498d1d3e2de 737 l = 1;
andJdmat 0:c498d1d3e2de 738 lcd.cls();
andJdmat 0:c498d1d3e2de 739 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 740 lcd.printf("Selecciono la");
andJdmat 0:c498d1d3e2de 741 lcd.locate(0,2);
andJdmat 0:c498d1d3e2de 742 lcd.printf("Alarma numero %02d ",pos);
andJdmat 0:c498d1d3e2de 743 wait(1.5);
andJdmat 0:c498d1d3e2de 744 lcd.cls();
andJdmat 0:c498d1d3e2de 745
andJdmat 0:c498d1d3e2de 746 }
andJdmat 0:c498d1d3e2de 747
andJdmat 0:c498d1d3e2de 748 }
andJdmat 0:c498d1d3e2de 749
andJdmat 0:c498d1d3e2de 750 lcd.cls();
andJdmat 0:c498d1d3e2de 751 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 752 lcd.printf("Dia: ");
andJdmat 0:c498d1d3e2de 753 t.date = 1;
andJdmat 0:c498d1d3e2de 754
andJdmat 0:c498d1d3e2de 755 while (l == 1){
andJdmat 0:c498d1d3e2de 756 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 757 if (m!=0){
andJdmat 0:c498d1d3e2de 758 t.date=t.date+m;
andJdmat 0:c498d1d3e2de 759 if(t.date>31){
andJdmat 0:c498d1d3e2de 760 t.date=31;
andJdmat 0:c498d1d3e2de 761 }
andJdmat 0:c498d1d3e2de 762 if(t.date<1){
andJdmat 0:c498d1d3e2de 763 t.date=1;
andJdmat 0:c498d1d3e2de 764 }
andJdmat 0:c498d1d3e2de 765 wheel.reset();
andJdmat 0:c498d1d3e2de 766 m=0;
andJdmat 0:c498d1d3e2de 767 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 768 lcd.printf("%02d",t.date);
andJdmat 0:c498d1d3e2de 769 }
andJdmat 0:c498d1d3e2de 770
andJdmat 0:c498d1d3e2de 771 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 772 a++;
andJdmat 0:c498d1d3e2de 773 m=0;
andJdmat 0:c498d1d3e2de 774 lcd.cls();
andJdmat 0:c498d1d3e2de 775 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 776 lcd.printf("Mes: ");
andJdmat 0:c498d1d3e2de 777 t.mon = 1;
andJdmat 0:c498d1d3e2de 778 l = 2;
andJdmat 0:c498d1d3e2de 779 }
andJdmat 0:c498d1d3e2de 780 }
andJdmat 0:c498d1d3e2de 781 while (l == 2){
andJdmat 0:c498d1d3e2de 782 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 783 if (m!=0){
andJdmat 0:c498d1d3e2de 784 t.mon=t.mon+m;
andJdmat 0:c498d1d3e2de 785 if(t.mon>12){
andJdmat 0:c498d1d3e2de 786 t.mon=12;
andJdmat 0:c498d1d3e2de 787 }
andJdmat 0:c498d1d3e2de 788 if(t.mon<1){
andJdmat 0:c498d1d3e2de 789 t.mon=1;
andJdmat 0:c498d1d3e2de 790 }
andJdmat 0:c498d1d3e2de 791 wheel.reset();
andJdmat 0:c498d1d3e2de 792 m=0;
andJdmat 0:c498d1d3e2de 793 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 794 lcd.printf("%02d",t.mon);
andJdmat 0:c498d1d3e2de 795 }
andJdmat 0:c498d1d3e2de 796
andJdmat 0:c498d1d3e2de 797 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 798 a++;
andJdmat 0:c498d1d3e2de 799 m=0;
andJdmat 0:c498d1d3e2de 800 lcd.cls();
andJdmat 0:c498d1d3e2de 801 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 802 lcd.printf("Ano: ");
andJdmat 0:c498d1d3e2de 803 t.year = 2016;
andJdmat 0:c498d1d3e2de 804 l = 3;
andJdmat 0:c498d1d3e2de 805 }
andJdmat 0:c498d1d3e2de 806 }
andJdmat 0:c498d1d3e2de 807 while (l == 3){
andJdmat 0:c498d1d3e2de 808 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 809 if (m!=0){
andJdmat 0:c498d1d3e2de 810 t.year=t.year+m;
andJdmat 0:c498d1d3e2de 811
andJdmat 0:c498d1d3e2de 812 if(t.year<2016){
andJdmat 0:c498d1d3e2de 813 t.year=2016;
andJdmat 0:c498d1d3e2de 814 }
andJdmat 0:c498d1d3e2de 815 wheel.reset();
andJdmat 0:c498d1d3e2de 816 m=0;
andJdmat 0:c498d1d3e2de 817 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 818 lcd.printf("%02d",t.year);
andJdmat 0:c498d1d3e2de 819 }
andJdmat 0:c498d1d3e2de 820
andJdmat 0:c498d1d3e2de 821 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 822 a++;
andJdmat 0:c498d1d3e2de 823 m=0;
andJdmat 0:c498d1d3e2de 824 lcd.cls();
andJdmat 0:c498d1d3e2de 825 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 826 lcd.printf("Hora: ");
andJdmat 0:c498d1d3e2de 827 t.hour = 0;
andJdmat 0:c498d1d3e2de 828 l = 4;
andJdmat 0:c498d1d3e2de 829 }
andJdmat 0:c498d1d3e2de 830 }
andJdmat 0:c498d1d3e2de 831 while (l == 4){
andJdmat 0:c498d1d3e2de 832 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 833 if (m!=0){
andJdmat 0:c498d1d3e2de 834 t.hour=t.hour+m;
andJdmat 0:c498d1d3e2de 835 if(t.hour>23){
andJdmat 0:c498d1d3e2de 836 t.hour=23;
andJdmat 0:c498d1d3e2de 837 }
andJdmat 0:c498d1d3e2de 838
andJdmat 0:c498d1d3e2de 839 if(t.hour<0){
andJdmat 0:c498d1d3e2de 840 t.hour=0;
andJdmat 0:c498d1d3e2de 841 }
andJdmat 0:c498d1d3e2de 842 wheel.reset();
andJdmat 0:c498d1d3e2de 843 m=0;
andJdmat 0:c498d1d3e2de 844 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 845 lcd.printf("%02d",t.hour);
andJdmat 0:c498d1d3e2de 846 }
andJdmat 0:c498d1d3e2de 847
andJdmat 0:c498d1d3e2de 848 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 849 a++;
andJdmat 0:c498d1d3e2de 850 m=0;
andJdmat 0:c498d1d3e2de 851 lcd.cls();
andJdmat 0:c498d1d3e2de 852 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 853 lcd.printf("Minuto: ");
andJdmat 0:c498d1d3e2de 854 t.min = 0;
andJdmat 0:c498d1d3e2de 855 l = 5;
andJdmat 0:c498d1d3e2de 856 }
andJdmat 0:c498d1d3e2de 857 }
andJdmat 0:c498d1d3e2de 858 while (l == 5){
andJdmat 0:c498d1d3e2de 859 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 860 if (m!=0){
andJdmat 0:c498d1d3e2de 861 t.min=t.min+m;
andJdmat 0:c498d1d3e2de 862 if(t.min>59){
andJdmat 0:c498d1d3e2de 863 t.min=59;
andJdmat 0:c498d1d3e2de 864 }
andJdmat 0:c498d1d3e2de 865
andJdmat 0:c498d1d3e2de 866 if(t.min<0){
andJdmat 0:c498d1d3e2de 867 t.min=0;
andJdmat 0:c498d1d3e2de 868 }
andJdmat 0:c498d1d3e2de 869 wheel.reset();
andJdmat 0:c498d1d3e2de 870 m=0;
andJdmat 0:c498d1d3e2de 871 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 872 lcd.printf("%02d",t.min);
andJdmat 0:c498d1d3e2de 873 }
andJdmat 0:c498d1d3e2de 874
andJdmat 0:c498d1d3e2de 875 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 876 a++;
andJdmat 0:c498d1d3e2de 877 m=0;
andJdmat 0:c498d1d3e2de 878 lcd.cls();
andJdmat 0:c498d1d3e2de 879 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 880 lcd.printf("Segundo: ");
andJdmat 0:c498d1d3e2de 881 t.sec = 0;
andJdmat 0:c498d1d3e2de 882 l = 6;
andJdmat 0:c498d1d3e2de 883 }
andJdmat 0:c498d1d3e2de 884
andJdmat 0:c498d1d3e2de 885 }
andJdmat 0:c498d1d3e2de 886 while (l == 6){
andJdmat 0:c498d1d3e2de 887 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 888 if (m!=0){
andJdmat 0:c498d1d3e2de 889 t.sec=t.sec+m;
andJdmat 0:c498d1d3e2de 890 if(t.sec>59){
andJdmat 0:c498d1d3e2de 891 t.sec=59;
andJdmat 0:c498d1d3e2de 892 }
andJdmat 0:c498d1d3e2de 893
andJdmat 0:c498d1d3e2de 894 if(t.sec<0){
andJdmat 0:c498d1d3e2de 895 t.sec=0;
andJdmat 0:c498d1d3e2de 896 }
andJdmat 0:c498d1d3e2de 897 wheel.reset();
andJdmat 0:c498d1d3e2de 898 m=0;
andJdmat 0:c498d1d3e2de 899 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 900 lcd.printf("%02d",t.sec);
andJdmat 0:c498d1d3e2de 901 }
andJdmat 0:c498d1d3e2de 902
andJdmat 0:c498d1d3e2de 903 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 904
andJdmat 0:c498d1d3e2de 905 if(pos ==1){
andJdmat 0:c498d1d3e2de 906 Alm=t;
andJdmat 0:c498d1d3e2de 907 x1=1;
andJdmat 0:c498d1d3e2de 908 }
andJdmat 0:c498d1d3e2de 909 if(pos ==2){
andJdmat 0:c498d1d3e2de 910 Alm2=t;
andJdmat 0:c498d1d3e2de 911 x2=1;
andJdmat 0:c498d1d3e2de 912 }
andJdmat 0:c498d1d3e2de 913 if(pos ==3){
andJdmat 0:c498d1d3e2de 914 Alm3=t;
andJdmat 0:c498d1d3e2de 915 x3=1;
andJdmat 0:c498d1d3e2de 916 }
andJdmat 0:c498d1d3e2de 917 if(pos ==4){
andJdmat 0:c498d1d3e2de 918 Alm4=t;
andJdmat 0:c498d1d3e2de 919 x4=1;
andJdmat 0:c498d1d3e2de 920 }
andJdmat 0:c498d1d3e2de 921 lcd.cls();
andJdmat 0:c498d1d3e2de 922 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 923 lcd.printf("Alarma %02d config",pos);
andJdmat 0:c498d1d3e2de 924 wait(1);
andJdmat 0:c498d1d3e2de 925 m=0;
andJdmat 0:c498d1d3e2de 926 lcd.cls();
andJdmat 0:c498d1d3e2de 927 l = 7;
andJdmat 0:c498d1d3e2de 928 }
andJdmat 0:c498d1d3e2de 929 }
andJdmat 0:c498d1d3e2de 930
andJdmat 0:c498d1d3e2de 931 while(l == 7){
andJdmat 0:c498d1d3e2de 932 lcd.cls();
andJdmat 0:c498d1d3e2de 933 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 934 lcd.printf("Prog Desactivacion");
andJdmat 0:c498d1d3e2de 935 wait(2);
andJdmat 0:c498d1d3e2de 936 l = 8;
andJdmat 0:c498d1d3e2de 937 }
andJdmat 0:c498d1d3e2de 938
andJdmat 0:c498d1d3e2de 939 while(l == 8){
andJdmat 0:c498d1d3e2de 940 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 941 l = 9;
andJdmat 0:c498d1d3e2de 942 lcd.cls();
andJdmat 0:c498d1d3e2de 943 wait(1);
andJdmat 0:c498d1d3e2de 944 }
andJdmat 0:c498d1d3e2de 945 while(l == 9){
andJdmat 0:c498d1d3e2de 946 Lugar=2;
andJdmat 0:c498d1d3e2de 947 goto menu;
andJdmat 0:c498d1d3e2de 948 }
andJdmat 0:c498d1d3e2de 949 }
andJdmat 0:c498d1d3e2de 950 desactivar:
andJdmat 0:c498d1d3e2de 951 l = 1;
andJdmat 0:c498d1d3e2de 952 lcd.cls();
andJdmat 0:c498d1d3e2de 953 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 954 lcd.printf("Dia: ");
andJdmat 0:c498d1d3e2de 955 t.date = 1;
andJdmat 0:c498d1d3e2de 956
andJdmat 0:c498d1d3e2de 957 while (l == 1){
andJdmat 0:c498d1d3e2de 958 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 959 if (m!=0){
andJdmat 0:c498d1d3e2de 960 t.date=t.date+m;
andJdmat 0:c498d1d3e2de 961 if(t.date>31){
andJdmat 0:c498d1d3e2de 962 t.date=31;
andJdmat 0:c498d1d3e2de 963 }
andJdmat 0:c498d1d3e2de 964 if(t.date<1){
andJdmat 0:c498d1d3e2de 965 t.date=1;
andJdmat 0:c498d1d3e2de 966 }
andJdmat 0:c498d1d3e2de 967 wheel.reset();
andJdmat 0:c498d1d3e2de 968 m=0;
andJdmat 0:c498d1d3e2de 969 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 970 lcd.printf("%02d",t.date);
andJdmat 0:c498d1d3e2de 971 }
andJdmat 0:c498d1d3e2de 972
andJdmat 0:c498d1d3e2de 973 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 974 a++;
andJdmat 0:c498d1d3e2de 975 m=0;
andJdmat 0:c498d1d3e2de 976 lcd.cls();
andJdmat 0:c498d1d3e2de 977 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 978 lcd.printf("Mes: ");
andJdmat 0:c498d1d3e2de 979 t.mon = 1;
andJdmat 0:c498d1d3e2de 980 l = 2;
andJdmat 0:c498d1d3e2de 981 }
andJdmat 0:c498d1d3e2de 982 }
andJdmat 0:c498d1d3e2de 983 while (l == 2){
andJdmat 0:c498d1d3e2de 984 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 985 if (m!=0){
andJdmat 0:c498d1d3e2de 986 t.mon=t.mon+m;
andJdmat 0:c498d1d3e2de 987 if(t.mon>12){
andJdmat 0:c498d1d3e2de 988 t.mon=12;
andJdmat 0:c498d1d3e2de 989 }
andJdmat 0:c498d1d3e2de 990 if(t.mon<1){
andJdmat 0:c498d1d3e2de 991 t.mon=1;
andJdmat 0:c498d1d3e2de 992 }
andJdmat 0:c498d1d3e2de 993 wheel.reset();
andJdmat 0:c498d1d3e2de 994 m=0;
andJdmat 0:c498d1d3e2de 995 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 996 lcd.printf("%02d",t.mon);
andJdmat 0:c498d1d3e2de 997 }
andJdmat 0:c498d1d3e2de 998
andJdmat 0:c498d1d3e2de 999 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 1000 a++;
andJdmat 0:c498d1d3e2de 1001 m=0;
andJdmat 0:c498d1d3e2de 1002 lcd.cls();
andJdmat 0:c498d1d3e2de 1003 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 1004 lcd.printf("Ano: ");
andJdmat 0:c498d1d3e2de 1005 t.year = 2016;
andJdmat 0:c498d1d3e2de 1006 l = 3;
andJdmat 0:c498d1d3e2de 1007 }
andJdmat 0:c498d1d3e2de 1008 }
andJdmat 0:c498d1d3e2de 1009 while (l == 3){
andJdmat 0:c498d1d3e2de 1010 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 1011 if (m!=0){
andJdmat 0:c498d1d3e2de 1012 t.year=t.year+m;
andJdmat 0:c498d1d3e2de 1013
andJdmat 0:c498d1d3e2de 1014 if(t.year<2016){
andJdmat 0:c498d1d3e2de 1015 t.year=2016;
andJdmat 0:c498d1d3e2de 1016 }
andJdmat 0:c498d1d3e2de 1017 wheel.reset();
andJdmat 0:c498d1d3e2de 1018 m=0;
andJdmat 0:c498d1d3e2de 1019 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 1020 lcd.printf("%02d",t.year);
andJdmat 0:c498d1d3e2de 1021 }
andJdmat 0:c498d1d3e2de 1022
andJdmat 0:c498d1d3e2de 1023 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 1024 a++;
andJdmat 0:c498d1d3e2de 1025 m=0;
andJdmat 0:c498d1d3e2de 1026 lcd.cls();
andJdmat 0:c498d1d3e2de 1027 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 1028 lcd.printf("Hora: ");
andJdmat 0:c498d1d3e2de 1029 t.hour = 0;
andJdmat 0:c498d1d3e2de 1030 l = 4;
andJdmat 0:c498d1d3e2de 1031 }
andJdmat 0:c498d1d3e2de 1032 }
andJdmat 0:c498d1d3e2de 1033 while (l == 4){
andJdmat 0:c498d1d3e2de 1034 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 1035 if (m!=0){
andJdmat 0:c498d1d3e2de 1036 t.hour=t.hour+m;
andJdmat 0:c498d1d3e2de 1037 if(t.hour>23){
andJdmat 0:c498d1d3e2de 1038 t.hour=23;
andJdmat 0:c498d1d3e2de 1039 }
andJdmat 0:c498d1d3e2de 1040
andJdmat 0:c498d1d3e2de 1041 if(t.hour<0){
andJdmat 0:c498d1d3e2de 1042 t.hour=0;
andJdmat 0:c498d1d3e2de 1043 }
andJdmat 0:c498d1d3e2de 1044 wheel.reset();
andJdmat 0:c498d1d3e2de 1045 m=0;
andJdmat 0:c498d1d3e2de 1046 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 1047 lcd.printf("%02d",t.hour);
andJdmat 0:c498d1d3e2de 1048 }
andJdmat 0:c498d1d3e2de 1049
andJdmat 0:c498d1d3e2de 1050 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 1051 a++;
andJdmat 0:c498d1d3e2de 1052 m=0;
andJdmat 0:c498d1d3e2de 1053 lcd.cls();
andJdmat 0:c498d1d3e2de 1054 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 1055 lcd.printf("Minuto: ");
andJdmat 0:c498d1d3e2de 1056 t.min = 0;
andJdmat 0:c498d1d3e2de 1057 l = 5;
andJdmat 0:c498d1d3e2de 1058 }
andJdmat 0:c498d1d3e2de 1059 }
andJdmat 0:c498d1d3e2de 1060 while (l == 5){
andJdmat 0:c498d1d3e2de 1061 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 1062 if (m!=0){
andJdmat 0:c498d1d3e2de 1063 t.min=t.min+m;
andJdmat 0:c498d1d3e2de 1064 if(t.min>59){
andJdmat 0:c498d1d3e2de 1065 t.min=59;
andJdmat 0:c498d1d3e2de 1066 }
andJdmat 0:c498d1d3e2de 1067
andJdmat 0:c498d1d3e2de 1068 if(t.min<0){
andJdmat 0:c498d1d3e2de 1069 t.min=0;
andJdmat 0:c498d1d3e2de 1070 }
andJdmat 0:c498d1d3e2de 1071 wheel.reset();
andJdmat 0:c498d1d3e2de 1072 m=0;
andJdmat 0:c498d1d3e2de 1073 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 1074 lcd.printf("%02d",t.min);
andJdmat 0:c498d1d3e2de 1075 }
andJdmat 0:c498d1d3e2de 1076
andJdmat 0:c498d1d3e2de 1077 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 1078 a++;
andJdmat 0:c498d1d3e2de 1079 m=0;
andJdmat 0:c498d1d3e2de 1080 lcd.cls();
andJdmat 0:c498d1d3e2de 1081 lcd.locate(0,0);
andJdmat 0:c498d1d3e2de 1082 lcd.printf("Segundo: ");
andJdmat 0:c498d1d3e2de 1083 t.sec = 0;
andJdmat 0:c498d1d3e2de 1084 l = 6;
andJdmat 0:c498d1d3e2de 1085 }
andJdmat 0:c498d1d3e2de 1086
andJdmat 0:c498d1d3e2de 1087 }
andJdmat 0:c498d1d3e2de 1088 while (l == 6){
andJdmat 0:c498d1d3e2de 1089 m=wheel.getPulses();
andJdmat 0:c498d1d3e2de 1090 if (m!=0){
andJdmat 0:c498d1d3e2de 1091 t.sec=t.sec+m;
andJdmat 0:c498d1d3e2de 1092 if(t.sec>59){
andJdmat 0:c498d1d3e2de 1093 t.sec=59;
andJdmat 0:c498d1d3e2de 1094 }
andJdmat 0:c498d1d3e2de 1095
andJdmat 0:c498d1d3e2de 1096 if(t.sec<0){
andJdmat 0:c498d1d3e2de 1097 t.sec=0;
andJdmat 0:c498d1d3e2de 1098 }
andJdmat 0:c498d1d3e2de 1099 wheel.reset();
andJdmat 0:c498d1d3e2de 1100 m=0;
andJdmat 0:c498d1d3e2de 1101 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 1102 lcd.printf("%02d",t.sec);
andJdmat 0:c498d1d3e2de 1103 }
andJdmat 0:c498d1d3e2de 1104
andJdmat 0:c498d1d3e2de 1105 if (b_en.falling()){
andJdmat 0:c498d1d3e2de 1106
andJdmat 0:c498d1d3e2de 1107 if(pos ==1){
andJdmat 0:c498d1d3e2de 1108 Alm_d=t;
andJdmat 0:c498d1d3e2de 1109 x1=1;
andJdmat 0:c498d1d3e2de 1110 }
andJdmat 0:c498d1d3e2de 1111 if(pos ==2){
andJdmat 0:c498d1d3e2de 1112 Alm2_d=t;
andJdmat 0:c498d1d3e2de 1113 x2=1;
andJdmat 0:c498d1d3e2de 1114 }
andJdmat 0:c498d1d3e2de 1115 if(pos ==3){
andJdmat 0:c498d1d3e2de 1116 Alm3_d=t;
andJdmat 0:c498d1d3e2de 1117 x3=1;
andJdmat 0:c498d1d3e2de 1118
andJdmat 0:c498d1d3e2de 1119 }
andJdmat 0:c498d1d3e2de 1120 if(pos ==4){
andJdmat 0:c498d1d3e2de 1121 Alm4_d=t;
andJdmat 0:c498d1d3e2de 1122 x4=1;
andJdmat 0:c498d1d3e2de 1123 }
andJdmat 0:c498d1d3e2de 1124 lcd.cls();
andJdmat 0:c498d1d3e2de 1125 lcd.locate(0,1);
andJdmat 0:c498d1d3e2de 1126 lcd.printf("Alarma %02d Finalizo",pos);
andJdmat 0:c498d1d3e2de 1127 wait(1);
andJdmat 0:c498d1d3e2de 1128 m=0;
andJdmat 0:c498d1d3e2de 1129 lcd.cls();
andJdmat 0:c498d1d3e2de 1130 l = 7;
andJdmat 0:c498d1d3e2de 1131 }
andJdmat 0:c498d1d3e2de 1132 }
andJdmat 0:c498d1d3e2de 1133 while (l == 7){
andJdmat 0:c498d1d3e2de 1134 Lugar=3;
andJdmat 0:c498d1d3e2de 1135 goto menu;
andJdmat 0:c498d1d3e2de 1136 }
andJdmat 0:c498d1d3e2de 1137 }