Tarea 3 del curso de procesadores

Dependencies:   Debounced Pulse1 QEI RTC-DS1307 TextLCD mbed

Fork of Reloj_alarma by Gustavo Ramirez

Committer:
CristihanPerez95
Date:
Tue Jun 05 01:53:03 2018 +0000
Revision:
2:ddd2659db993
Parent:
1:0639f31dd59f
Tarea 3 del curso de procesadores.; Universidad Nacional de Colombia Sede Medell?n.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jepalacioh 0:c2ed510ee88d 1 #include "mbed.h"
Jepalacioh 0:c2ed510ee88d 2 #include "DebouncedIn.h"
Jepalacioh 0:c2ed510ee88d 3 #include "TextLCD.h"
Jepalacioh 0:c2ed510ee88d 4 #include "QEI.h"
Jepalacioh 0:c2ed510ee88d 5 #include "Rtc_Ds1307.h"
CristihanPerez95 2:ddd2659db993 6 #include "string.h"
CristihanPerez95 2:ddd2659db993 7 #include <Pulse1.h>
Jepalacioh 0:c2ed510ee88d 8
CristihanPerez95 2:ddd2659db993 9 //DigitalIn Irda_int(PTB0);
CristihanPerez95 2:ddd2659db993 10 //DebouncedIn Irda_int(PTB0);
CristihanPerez95 2:ddd2659db993 11 PulseInOut irda(PTB0);// Sensor infrarrojo
Jepalacioh 0:c2ed510ee88d 12 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
Jepalacioh 0:c2ed510ee88d 13 Rtc_Ds1307 rtc(PTE0, PTE1);
CristihanPerez95 2:ddd2659db993 14 QEI wheel (PTA13, PTD5, NC, 624);
CristihanPerez95 2:ddd2659db993 15 DebouncedIn button_enco(PTC17);
CristihanPerez95 2:ddd2659db993 16 DigitalOut myled(LED1);
Jepalacioh 0:c2ed510ee88d 17
CristihanPerez95 2:ddd2659db993 18 int numP[35];//cadena para almacenar todos los tiempos que conforman los bits de datos
CristihanPerez95 2:ddd2659db993 19 int numbin[35];
CristihanPerez95 2:ddd2659db993 20 int i1;
CristihanPerez95 2:ddd2659db993 21 int header=0;
CristihanPerez95 2:ddd2659db993 22 char r;
CristihanPerez95 2:ddd2659db993 23 char cadena[34];
CristihanPerez95 2:ddd2659db993 24 char cadena1[34];
CristihanPerez95 2:ddd2659db993 25 //char Read[]="0000000011111111111000100001110111";
CristihanPerez95 2:ddd2659db993 26 char uno[]="0000000011111111001100001100111111";
CristihanPerez95 2:ddd2659db993 27 char dos[]="0000000011111111000110001110011111";
CristihanPerez95 2:ddd2659db993 28 char tres[]="0000000011111111011110101000010111";
CristihanPerez95 2:ddd2659db993 29 char cuatro[]="0000000011111111000100001110111111";
CristihanPerez95 2:ddd2659db993 30 char cinco[]="0000000011111111001110001100011111";
CristihanPerez95 2:ddd2659db993 31 char seis[]="0000000011111111010110101010010111";
CristihanPerez95 2:ddd2659db993 32 char siete[]="0000000011111111010000101011110111";
CristihanPerez95 2:ddd2659db993 33 char set[]="0000000011111111100100000110111111";
CristihanPerez95 2:ddd2659db993 34 int mode=0;
CristihanPerez95 2:ddd2659db993 35 int numb=34;
CristihanPerez95 2:ddd2659db993 36 int s=0;
CristihanPerez95 2:ddd2659db993 37 //
Jepalacioh 0:c2ed510ee88d 38 int C1=0x0C;
tony63 1:0639f31dd59f 39 int m;
Jepalacioh 0:c2ed510ee88d 40 int Conf=0; // 0: Alarma y 1:Reloj
Jepalacioh 0:c2ed510ee88d 41 int Lugar=0; // Definen el punto en el cual va el programa
Jepalacioh 0:c2ed510ee88d 42 int i=0;
CristihanPerez95 2:ddd2659db993 43 int j=1; //Cuenta las alarmas
CristihanPerez95 2:ddd2659db993 44 int Select=1; //Alarma Seleccionada
CristihanPerez95 2:ddd2659db993 45 int StarReadIR=0;
CristihanPerez95 2:ddd2659db993 46 int visual=0; //0: Reloj y 1:Alarm
CristihanPerez95 2:ddd2659db993 47 int alarma=0; //0: Desactivar y 1:Posponer
Jepalacioh 0:c2ed510ee88d 48 int main()
Jepalacioh 0:c2ed510ee88d 49 {
CristihanPerez95 2:ddd2659db993 50 myled=1;
CristihanPerez95 2:ddd2659db993 51 j=1;
CristihanPerez95 2:ddd2659db993 52 Rtc_Ds1307::Time_rtc tm2 = {};
Jepalacioh 0:c2ed510ee88d 53 Rtc_Ds1307::Time_rtc tm = {};
CristihanPerez95 2:ddd2659db993 54 Rtc_Ds1307::Time_rtc Alarm[8] = {};
Jepalacioh 0:c2ed510ee88d 55 lcd.cls();
Jepalacioh 0:c2ed510ee88d 56 lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD
Jepalacioh 0:c2ed510ee88d 57 lcd.locate(0,0);
CristihanPerez95 2:ddd2659db993 58 lcd.printf("--Alarmas --Hora");
tony63 1:0639f31dd59f 59 rtc.getTime(tm); //lee el tiempo del DS1307
CristihanPerez95 2:ddd2659db993 60
Jepalacioh 0:c2ed510ee88d 61 while(1)
Jepalacioh 0:c2ed510ee88d 62 {
CristihanPerez95 2:ddd2659db993 63
Jepalacioh 0:c2ed510ee88d 64 switch (Lugar)
Jepalacioh 0:c2ed510ee88d 65 {
Jepalacioh 0:c2ed510ee88d 66 case 0:
tony63 1:0639f31dd59f 67 m=wheel.getPulses(); // m son los datos del encoder
Jepalacioh 0:c2ed510ee88d 68 if(m!=0 && Conf==0){
Jepalacioh 0:c2ed510ee88d 69 Conf=1;
Jepalacioh 0:c2ed510ee88d 70 wheel.reset();
Jepalacioh 0:c2ed510ee88d 71 m=0;
Jepalacioh 0:c2ed510ee88d 72 }
Jepalacioh 0:c2ed510ee88d 73
CristihanPerez95 2:ddd2659db993 74 if(m!=0 && Conf==1){
Jepalacioh 0:c2ed510ee88d 75 Conf=0;
Jepalacioh 0:c2ed510ee88d 76 wheel.reset();
Jepalacioh 0:c2ed510ee88d 77 m=0;
Jepalacioh 0:c2ed510ee88d 78 }
Jepalacioh 0:c2ed510ee88d 79
Jepalacioh 0:c2ed510ee88d 80 if(Conf==0){
Jepalacioh 0:c2ed510ee88d 81
Jepalacioh 0:c2ed510ee88d 82 lcd.locate(11,0);
Jepalacioh 0:c2ed510ee88d 83 lcd.printf("-");
Jepalacioh 0:c2ed510ee88d 84 lcd.locate(1,0);
Jepalacioh 0:c2ed510ee88d 85 lcd.printf(">");
Jepalacioh 0:c2ed510ee88d 86 lcd.locate(0,1);
Jepalacioh 0:c2ed510ee88d 87 wait(0.1);
Jepalacioh 0:c2ed510ee88d 88
Jepalacioh 0:c2ed510ee88d 89 }
Jepalacioh 0:c2ed510ee88d 90
Jepalacioh 0:c2ed510ee88d 91 if(Conf==1){
Jepalacioh 0:c2ed510ee88d 92
Jepalacioh 0:c2ed510ee88d 93 lcd.locate(1,0);
Jepalacioh 0:c2ed510ee88d 94 lcd.printf("-");
Jepalacioh 0:c2ed510ee88d 95 lcd.locate(11,0);
Jepalacioh 0:c2ed510ee88d 96 lcd.printf(">");
Jepalacioh 0:c2ed510ee88d 97 lcd.locate(0,1);
Jepalacioh 0:c2ed510ee88d 98 wait(0.1);
Jepalacioh 0:c2ed510ee88d 99 }
Jepalacioh 0:c2ed510ee88d 100
tony63 1:0639f31dd59f 101 if (button_enco.falling()){ //si se pulsa boton encoder
Jepalacioh 0:c2ed510ee88d 102 Lugar++;
Jepalacioh 0:c2ed510ee88d 103 m=0;
Jepalacioh 0:c2ed510ee88d 104 }
Jepalacioh 0:c2ed510ee88d 105
Jepalacioh 0:c2ed510ee88d 106 break;
Jepalacioh 0:c2ed510ee88d 107
Jepalacioh 0:c2ed510ee88d 108 case 1:
Jepalacioh 0:c2ed510ee88d 109 switch(i)
Jepalacioh 0:c2ed510ee88d 110 {
CristihanPerez95 2:ddd2659db993 111 case 0:
CristihanPerez95 2:ddd2659db993 112 if(Conf==0) // ALARMA
Jepalacioh 0:c2ed510ee88d 113 {
Jepalacioh 0:c2ed510ee88d 114 lcd.cls();
Jepalacioh 0:c2ed510ee88d 115 lcd.locate(0,0);
CristihanPerez95 2:ddd2659db993 116 lcd.printf("Config. Alarmas ");
CristihanPerez95 2:ddd2659db993 117 wait(1);
CristihanPerez95 2:ddd2659db993 118 lcd.cls();
CristihanPerez95 2:ddd2659db993 119 i++;
CristihanPerez95 2:ddd2659db993 120 lcd.locate(0,0);
CristihanPerez95 2:ddd2659db993 121 lcd.printf("Dia: ");
CristihanPerez95 2:ddd2659db993 122 m=0;
CristihanPerez95 2:ddd2659db993 123 }
CristihanPerez95 2:ddd2659db993 124
CristihanPerez95 2:ddd2659db993 125 if(Conf==1) //RELOJ
CristihanPerez95 2:ddd2659db993 126 {
CristihanPerez95 2:ddd2659db993 127 lcd.cls();
CristihanPerez95 2:ddd2659db993 128 lcd.locate(0,0);
CristihanPerez95 2:ddd2659db993 129 lcd.printf("Config. Hora ");
Jepalacioh 0:c2ed510ee88d 130 wait(1);
Jepalacioh 0:c2ed510ee88d 131 i++;
Jepalacioh 0:c2ed510ee88d 132 lcd.cls();
Jepalacioh 0:c2ed510ee88d 133 lcd.locate(0,0);
Jepalacioh 0:c2ed510ee88d 134 lcd.printf("Dia: ");
Jepalacioh 0:c2ed510ee88d 135 m=0;
tony63 1:0639f31dd59f 136
Jepalacioh 0:c2ed510ee88d 137 }
CristihanPerez95 2:ddd2659db993 138
Jepalacioh 0:c2ed510ee88d 139 break;
CristihanPerez95 2:ddd2659db993 140 case 1: // Dia
CristihanPerez95 2:ddd2659db993 141 m=0;
Jepalacioh 0:c2ed510ee88d 142 m=wheel.getPulses();
Jepalacioh 0:c2ed510ee88d 143 if (m!=0)
Jepalacioh 0:c2ed510ee88d 144 {
Jepalacioh 0:c2ed510ee88d 145 tm.date=tm.date+m;
Jepalacioh 0:c2ed510ee88d 146 if(tm.date>31)
Jepalacioh 0:c2ed510ee88d 147 {
Jepalacioh 0:c2ed510ee88d 148 tm.date=31;
Jepalacioh 0:c2ed510ee88d 149 }
Jepalacioh 0:c2ed510ee88d 150 if(tm.date<1)
Jepalacioh 0:c2ed510ee88d 151 {
Jepalacioh 0:c2ed510ee88d 152 tm.date=1;
Jepalacioh 0:c2ed510ee88d 153 }
Jepalacioh 0:c2ed510ee88d 154
Jepalacioh 0:c2ed510ee88d 155 wheel.reset();
Jepalacioh 0:c2ed510ee88d 156 m=0;
Jepalacioh 0:c2ed510ee88d 157 }
Jepalacioh 0:c2ed510ee88d 158 lcd.locate(5,0);
CristihanPerez95 2:ddd2659db993 159 lcd.printf("%02d ",tm.date);
Jepalacioh 0:c2ed510ee88d 160
Jepalacioh 0:c2ed510ee88d 161 if (button_enco.falling())
Jepalacioh 0:c2ed510ee88d 162 {
Jepalacioh 0:c2ed510ee88d 163 i++;
Jepalacioh 0:c2ed510ee88d 164 m=0;
Jepalacioh 0:c2ed510ee88d 165 lcd.cls();
Jepalacioh 0:c2ed510ee88d 166 lcd.locate(0,0);
Jepalacioh 0:c2ed510ee88d 167 lcd.printf("Mes: ");
CristihanPerez95 2:ddd2659db993 168
Jepalacioh 0:c2ed510ee88d 169 }
Jepalacioh 0:c2ed510ee88d 170 break;
CristihanPerez95 2:ddd2659db993 171 case 2: // Mes
Jepalacioh 0:c2ed510ee88d 172 m=wheel.getPulses();
Jepalacioh 0:c2ed510ee88d 173 if (m!=0)
Jepalacioh 0:c2ed510ee88d 174 {
Jepalacioh 0:c2ed510ee88d 175 tm.mon=tm.mon+m;
Jepalacioh 0:c2ed510ee88d 176 if(tm.mon>12)
Jepalacioh 0:c2ed510ee88d 177 {
Jepalacioh 0:c2ed510ee88d 178 tm.mon=12;
Jepalacioh 0:c2ed510ee88d 179 }
Jepalacioh 0:c2ed510ee88d 180 if(tm.mon<1)
Jepalacioh 0:c2ed510ee88d 181 {
Jepalacioh 0:c2ed510ee88d 182 tm.mon=1;
Jepalacioh 0:c2ed510ee88d 183 }
Jepalacioh 0:c2ed510ee88d 184
Jepalacioh 0:c2ed510ee88d 185 wheel.reset();
Jepalacioh 0:c2ed510ee88d 186 m=0;
Jepalacioh 0:c2ed510ee88d 187 }
CristihanPerez95 2:ddd2659db993 188 lcd.locate(7,0);
Jepalacioh 0:c2ed510ee88d 189 lcd.printf("%02d",tm.mon);
Jepalacioh 0:c2ed510ee88d 190
Jepalacioh 0:c2ed510ee88d 191 if (button_enco.falling())
Jepalacioh 0:c2ed510ee88d 192 {
Jepalacioh 0:c2ed510ee88d 193 i++;
Jepalacioh 0:c2ed510ee88d 194 m=0;
Jepalacioh 0:c2ed510ee88d 195 lcd.cls();
Jepalacioh 0:c2ed510ee88d 196 lcd.locate(0,0);
Jepalacioh 0:c2ed510ee88d 197 lcd.printf("Year: ");
tony63 1:0639f31dd59f 198
Jepalacioh 0:c2ed510ee88d 199 }
Jepalacioh 0:c2ed510ee88d 200
Jepalacioh 0:c2ed510ee88d 201 break;
Jepalacioh 0:c2ed510ee88d 202
CristihanPerez95 2:ddd2659db993 203 case 3: //Año
Jepalacioh 0:c2ed510ee88d 204 m=wheel.getPulses();
Jepalacioh 0:c2ed510ee88d 205 if (m!=0)
Jepalacioh 0:c2ed510ee88d 206 {
Jepalacioh 0:c2ed510ee88d 207 tm.year=tm.year+m;
Jepalacioh 0:c2ed510ee88d 208
Jepalacioh 0:c2ed510ee88d 209 if(tm.year<2000)
Jepalacioh 0:c2ed510ee88d 210 {
Jepalacioh 0:c2ed510ee88d 211 tm.year=2000;
Jepalacioh 0:c2ed510ee88d 212 }
Jepalacioh 0:c2ed510ee88d 213
Jepalacioh 0:c2ed510ee88d 214 wheel.reset();
Jepalacioh 0:c2ed510ee88d 215 m=0;
Jepalacioh 0:c2ed510ee88d 216 }
Jepalacioh 0:c2ed510ee88d 217 lcd.locate(6,0);
Jepalacioh 0:c2ed510ee88d 218 lcd.printf("%02d",tm.year);
Jepalacioh 0:c2ed510ee88d 219
Jepalacioh 0:c2ed510ee88d 220 if (button_enco.falling())
Jepalacioh 0:c2ed510ee88d 221 {
Jepalacioh 0:c2ed510ee88d 222 i++;
Jepalacioh 0:c2ed510ee88d 223 m=0;
Jepalacioh 0:c2ed510ee88d 224 lcd.cls();
Jepalacioh 0:c2ed510ee88d 225 lcd.locate(0,0);
Jepalacioh 0:c2ed510ee88d 226 lcd.printf("Hora: ");
tony63 1:0639f31dd59f 227
CristihanPerez95 2:ddd2659db993 228
Jepalacioh 0:c2ed510ee88d 229 }
Jepalacioh 0:c2ed510ee88d 230
Jepalacioh 0:c2ed510ee88d 231 break;
Jepalacioh 0:c2ed510ee88d 232
CristihanPerez95 2:ddd2659db993 233 case 4: //HORA
CristihanPerez95 2:ddd2659db993 234 m=0;
CristihanPerez95 2:ddd2659db993 235 m=wheel.getPulses();
Jepalacioh 0:c2ed510ee88d 236 if (m!=0)
Jepalacioh 0:c2ed510ee88d 237 {
CristihanPerez95 2:ddd2659db993 238 tm.hour+= m;
Jepalacioh 0:c2ed510ee88d 239 if(tm.hour>23)
Jepalacioh 0:c2ed510ee88d 240 {
Jepalacioh 0:c2ed510ee88d 241 tm.hour=23;
Jepalacioh 0:c2ed510ee88d 242 }
Jepalacioh 0:c2ed510ee88d 243 if(tm.hour<0)
Jepalacioh 0:c2ed510ee88d 244 {
Jepalacioh 0:c2ed510ee88d 245 tm.hour=0;
Jepalacioh 0:c2ed510ee88d 246 }
Jepalacioh 0:c2ed510ee88d 247
Jepalacioh 0:c2ed510ee88d 248 wheel.reset();
Jepalacioh 0:c2ed510ee88d 249 m=0;
Jepalacioh 0:c2ed510ee88d 250 }
Jepalacioh 0:c2ed510ee88d 251 lcd.locate(6,0);
Jepalacioh 0:c2ed510ee88d 252 lcd.printf("%02d",tm.hour);
Jepalacioh 0:c2ed510ee88d 253
Jepalacioh 0:c2ed510ee88d 254 if (button_enco.falling())
Jepalacioh 0:c2ed510ee88d 255 {
Jepalacioh 0:c2ed510ee88d 256 i++;
Jepalacioh 0:c2ed510ee88d 257 m=0;
Jepalacioh 0:c2ed510ee88d 258 lcd.cls();
Jepalacioh 0:c2ed510ee88d 259 lcd.locate(0,0);
Jepalacioh 0:c2ed510ee88d 260 lcd.printf("Minuto: ");
Jepalacioh 0:c2ed510ee88d 261 //tm.min=0;
Jepalacioh 0:c2ed510ee88d 262 }
Jepalacioh 0:c2ed510ee88d 263
Jepalacioh 0:c2ed510ee88d 264 break;
Jepalacioh 0:c2ed510ee88d 265
CristihanPerez95 2:ddd2659db993 266 case 5: //MINUTOS
CristihanPerez95 2:ddd2659db993 267 m=0;
Jepalacioh 0:c2ed510ee88d 268 m=wheel.getPulses();
Jepalacioh 0:c2ed510ee88d 269 if (m!=0)
Jepalacioh 0:c2ed510ee88d 270 {
Jepalacioh 0:c2ed510ee88d 271 tm.min=tm.min+m;
Jepalacioh 0:c2ed510ee88d 272 if(tm.min>59)
Jepalacioh 0:c2ed510ee88d 273 {
Jepalacioh 0:c2ed510ee88d 274 tm.min=59;
Jepalacioh 0:c2ed510ee88d 275 }
Jepalacioh 0:c2ed510ee88d 276 if(tm.min<0)
Jepalacioh 0:c2ed510ee88d 277 {
Jepalacioh 0:c2ed510ee88d 278 tm.min=0;
Jepalacioh 0:c2ed510ee88d 279 }
Jepalacioh 0:c2ed510ee88d 280
Jepalacioh 0:c2ed510ee88d 281 wheel.reset();
Jepalacioh 0:c2ed510ee88d 282 m=0;
Jepalacioh 0:c2ed510ee88d 283 }
Jepalacioh 0:c2ed510ee88d 284 lcd.locate(8,0);
Jepalacioh 0:c2ed510ee88d 285 lcd.printf("%02d",tm.min);
Jepalacioh 0:c2ed510ee88d 286
Jepalacioh 0:c2ed510ee88d 287 if (button_enco.falling())
Jepalacioh 0:c2ed510ee88d 288 {
Jepalacioh 0:c2ed510ee88d 289 i++;
Jepalacioh 0:c2ed510ee88d 290 m=0;
Jepalacioh 0:c2ed510ee88d 291 lcd.cls();
Jepalacioh 0:c2ed510ee88d 292 lcd.locate(0,0);
Jepalacioh 0:c2ed510ee88d 293 lcd.printf("Segundo: ");
Jepalacioh 0:c2ed510ee88d 294 //tm.sec=0;
Jepalacioh 0:c2ed510ee88d 295 }
Jepalacioh 0:c2ed510ee88d 296
Jepalacioh 0:c2ed510ee88d 297 break;
Jepalacioh 0:c2ed510ee88d 298
Jepalacioh 0:c2ed510ee88d 299
CristihanPerez95 2:ddd2659db993 300 case 6: //SEGUNDOS
Jepalacioh 0:c2ed510ee88d 301 m=wheel.getPulses();
Jepalacioh 0:c2ed510ee88d 302 if (m!=0)
Jepalacioh 0:c2ed510ee88d 303 {
Jepalacioh 0:c2ed510ee88d 304 tm.sec=tm.sec+m;
Jepalacioh 0:c2ed510ee88d 305 if(tm.sec>59)
Jepalacioh 0:c2ed510ee88d 306 {
Jepalacioh 0:c2ed510ee88d 307 tm.sec=59;
Jepalacioh 0:c2ed510ee88d 308 }
Jepalacioh 0:c2ed510ee88d 309 if(tm.sec<0)
Jepalacioh 0:c2ed510ee88d 310 {
Jepalacioh 0:c2ed510ee88d 311 tm.sec=0;
Jepalacioh 0:c2ed510ee88d 312 }
Jepalacioh 0:c2ed510ee88d 313
Jepalacioh 0:c2ed510ee88d 314 wheel.reset();
Jepalacioh 0:c2ed510ee88d 315 m=0;
Jepalacioh 0:c2ed510ee88d 316 }
CristihanPerez95 2:ddd2659db993 317 lcd.locate(8,0);
Jepalacioh 0:c2ed510ee88d 318 lcd.printf("%02d",tm.sec);
Jepalacioh 0:c2ed510ee88d 319
Jepalacioh 0:c2ed510ee88d 320 if (button_enco.falling())
Jepalacioh 0:c2ed510ee88d 321 {
Jepalacioh 0:c2ed510ee88d 322 ///////////////////
Jepalacioh 0:c2ed510ee88d 323 if(Conf==0)
Jepalacioh 0:c2ed510ee88d 324 {
CristihanPerez95 2:ddd2659db993 325 Alarm[j]=tm;
Jepalacioh 0:c2ed510ee88d 326 lcd.cls();
Jepalacioh 0:c2ed510ee88d 327 lcd.locate(0,0);
CristihanPerez95 2:ddd2659db993 328 lcd.printf("Alarma %d config. ",j);
Jepalacioh 0:c2ed510ee88d 329 wait(1);
Jepalacioh 0:c2ed510ee88d 330 i=0;
Jepalacioh 0:c2ed510ee88d 331 m=0;
CristihanPerez95 2:ddd2659db993 332 if(j>=7)
CristihanPerez95 2:ddd2659db993 333 {
Jepalacioh 0:c2ed510ee88d 334 Lugar++;
CristihanPerez95 2:ddd2659db993 335 }
CristihanPerez95 2:ddd2659db993 336 j++;
Jepalacioh 0:c2ed510ee88d 337 lcd.cls();
Jepalacioh 0:c2ed510ee88d 338
Jepalacioh 0:c2ed510ee88d 339 }
Jepalacioh 0:c2ed510ee88d 340
Jepalacioh 0:c2ed510ee88d 341 if(Conf==1)
CristihanPerez95 2:ddd2659db993 342 {
CristihanPerez95 2:ddd2659db993 343 rtc.setTime(tm, true, false);
Jepalacioh 0:c2ed510ee88d 344 lcd.cls();
Jepalacioh 0:c2ed510ee88d 345 lcd.locate(0,0);
CristihanPerez95 2:ddd2659db993 346 lcd.printf("Hora config. ");
Jepalacioh 0:c2ed510ee88d 347 wait(1);
Jepalacioh 0:c2ed510ee88d 348 i=0;
Jepalacioh 0:c2ed510ee88d 349 m=0;
Jepalacioh 0:c2ed510ee88d 350 Lugar=0;
Jepalacioh 0:c2ed510ee88d 351 lcd.locate(0,0);
CristihanPerez95 2:ddd2659db993 352 lcd.printf("--Alarmas --Hora");
Jepalacioh 0:c2ed510ee88d 353 }
Jepalacioh 0:c2ed510ee88d 354
Jepalacioh 0:c2ed510ee88d 355 ///////////////////
Jepalacioh 0:c2ed510ee88d 356 }
Jepalacioh 0:c2ed510ee88d 357
Jepalacioh 0:c2ed510ee88d 358 break;
Jepalacioh 0:c2ed510ee88d 359
Jepalacioh 0:c2ed510ee88d 360 }
Jepalacioh 0:c2ed510ee88d 361 break;
Jepalacioh 0:c2ed510ee88d 362
CristihanPerez95 2:ddd2659db993 363 case 2: // Muestra la hora y la alarma, ademas se cumprueba el estado de la alarma
CristihanPerez95 2:ddd2659db993 364 rtc.getTime(tm2); //Lee el reloj
CristihanPerez95 2:ddd2659db993 365
Jepalacioh 0:c2ed510ee88d 366
Jepalacioh 0:c2ed510ee88d 367 if(visual==0)
CristihanPerez95 2:ddd2659db993 368 {
Jepalacioh 0:c2ed510ee88d 369 lcd.locate(0,0);
Jepalacioh 0:c2ed510ee88d 370 lcd.printf("Hora: ");
Jepalacioh 0:c2ed510ee88d 371 lcd.locate(8,0);
CristihanPerez95 2:ddd2659db993 372 lcd.printf("%02d:",tm2.hour);
CristihanPerez95 2:ddd2659db993 373 lcd.printf("%02d:",tm2.min);
CristihanPerez95 2:ddd2659db993 374 lcd.printf("%02d",tm2.sec);
CristihanPerez95 2:ddd2659db993 375
Jepalacioh 0:c2ed510ee88d 376 lcd.locate(0,1);
Jepalacioh 0:c2ed510ee88d 377 lcd.printf("%02d/",tm.mon);
Jepalacioh 0:c2ed510ee88d 378 lcd.printf("%02d/",tm.date);
Jepalacioh 0:c2ed510ee88d 379 lcd.printf("%02d",tm.year);
Jepalacioh 0:c2ed510ee88d 380 wait(0.1);
Jepalacioh 0:c2ed510ee88d 381 //////////
Jepalacioh 0:c2ed510ee88d 382 m=wheel.getPulses();
Jepalacioh 0:c2ed510ee88d 383 if(m!=0)
Jepalacioh 0:c2ed510ee88d 384 {
Jepalacioh 0:c2ed510ee88d 385 visual=1;
Jepalacioh 0:c2ed510ee88d 386 wheel.reset();
Jepalacioh 0:c2ed510ee88d 387 m=0;
Jepalacioh 0:c2ed510ee88d 388 }
Jepalacioh 0:c2ed510ee88d 389 }
Jepalacioh 0:c2ed510ee88d 390
Jepalacioh 0:c2ed510ee88d 391 if(visual==1)
Jepalacioh 0:c2ed510ee88d 392 {
CristihanPerez95 2:ddd2659db993 393 lcd.locate(0,1);
CristihanPerez95 2:ddd2659db993 394 lcd.printf(" ");
Jepalacioh 0:c2ed510ee88d 395 lcd.locate(8,0);
CristihanPerez95 2:ddd2659db993 396 lcd.printf("%02d:",Alarm[Select].hour);
CristihanPerez95 2:ddd2659db993 397 lcd.printf("%02d:",Alarm[Select].min);
CristihanPerez95 2:ddd2659db993 398 lcd.printf("%02d",Alarm[Select].sec);
Jepalacioh 0:c2ed510ee88d 399
Jepalacioh 0:c2ed510ee88d 400 lcd.locate(0,1);
CristihanPerez95 2:ddd2659db993 401 lcd.printf("%02d/",Alarm[Select].mon);
CristihanPerez95 2:ddd2659db993 402 lcd.printf("%02d/",Alarm[Select].date);
CristihanPerez95 2:ddd2659db993 403 lcd.printf("%02d",Alarm[Select].year);
Jepalacioh 0:c2ed510ee88d 404 wait(0.1);
Jepalacioh 0:c2ed510ee88d 405 ////
Jepalacioh 0:c2ed510ee88d 406 m=wheel.getPulses();
Jepalacioh 0:c2ed510ee88d 407 if(m!=0)
Jepalacioh 0:c2ed510ee88d 408 {
Jepalacioh 0:c2ed510ee88d 409 visual=0;
Jepalacioh 0:c2ed510ee88d 410 wheel.reset();
Jepalacioh 0:c2ed510ee88d 411 m=0;
Jepalacioh 0:c2ed510ee88d 412 }
Jepalacioh 0:c2ed510ee88d 413 }
CristihanPerez95 2:ddd2659db993 414 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CristihanPerez95 2:ddd2659db993 415 //////////////////////////////////////Se comprueba el estado de la alarma///////////////////////////////////////////////
CristihanPerez95 2:ddd2659db993 416 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CristihanPerez95 2:ddd2659db993 417 if( (tm2.date==Alarm[Select].date)&&(tm2.mon==Alarm[Select].mon)&&(tm2.year==Alarm[Select].year)&&(tm2.hour==Alarm[Select].hour)&&(tm2.min==Alarm[Select].min)&&(tm2.sec==Alarm[Select].sec) )
Jepalacioh 0:c2ed510ee88d 418 {
Jepalacioh 0:c2ed510ee88d 419 Lugar++;
Jepalacioh 0:c2ed510ee88d 420 lcd.cls();
Jepalacioh 0:c2ed510ee88d 421 lcd.locate(0,0);
Jepalacioh 0:c2ed510ee88d 422 lcd.printf("Alarma Activa!!!");
Jepalacioh 0:c2ed510ee88d 423 wait(1);
Jepalacioh 0:c2ed510ee88d 424 lcd.locate(0,0);
Jepalacioh 0:c2ed510ee88d 425 lcd.printf("->Desactivar ");
Jepalacioh 0:c2ed510ee88d 426 lcd.locate(0,1);
Jepalacioh 0:c2ed510ee88d 427 lcd.printf("--Aplazar ");
Jepalacioh 0:c2ed510ee88d 428 m=0;
Jepalacioh 0:c2ed510ee88d 429 }
CristihanPerez95 2:ddd2659db993 430 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CristihanPerez95 2:ddd2659db993 431 /////////////////////////////////////////////Inicializar la lectura del IRDA///////////////////////////////////////////////////////
CristihanPerez95 2:ddd2659db993 432 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CristihanPerez95 2:ddd2659db993 433 //StarReadIR=1;
CristihanPerez95 2:ddd2659db993 434 if (button_enco.falling())
CristihanPerez95 2:ddd2659db993 435 {
CristihanPerez95 2:ddd2659db993 436 Lugar=0;
CristihanPerez95 2:ddd2659db993 437 wheel.reset();
CristihanPerez95 2:ddd2659db993 438 m=0;
CristihanPerez95 2:ddd2659db993 439 myled=1;
CristihanPerez95 2:ddd2659db993 440 i=0;
CristihanPerez95 2:ddd2659db993 441 j=1;
CristihanPerez95 2:ddd2659db993 442 lcd.cls();
CristihanPerez95 2:ddd2659db993 443 lcd.locate(0,0);
CristihanPerez95 2:ddd2659db993 444 lcd.printf("--Alarma --Hora");
CristihanPerez95 2:ddd2659db993 445 }
CristihanPerez95 2:ddd2659db993 446 // if (header==0)
CristihanPerez95 2:ddd2659db993 447 // {
CristihanPerez95 2:ddd2659db993 448 // StarReadIR=1;
CristihanPerez95 2:ddd2659db993 449 // }
CristihanPerez95 2:ddd2659db993 450
CristihanPerez95 2:ddd2659db993 451 if(!mode)
CristihanPerez95 2:ddd2659db993 452 {
CristihanPerez95 2:ddd2659db993 453 header = irda.read_low_us(8000);
CristihanPerez95 2:ddd2659db993 454 if(header!=-1)
CristihanPerez95 2:ddd2659db993 455 {
CristihanPerez95 2:ddd2659db993 456 StarReadIR=1;
CristihanPerez95 2:ddd2659db993 457 lcd.cls();
CristihanPerez95 2:ddd2659db993 458 lcd.locate(0,0);
CristihanPerez95 2:ddd2659db993 459 lcd.printf(" Select Alarm ");
CristihanPerez95 2:ddd2659db993 460 }else{
CristihanPerez95 2:ddd2659db993 461 header = 0;
CristihanPerez95 2:ddd2659db993 462 }
CristihanPerez95 2:ddd2659db993 463 }
CristihanPerez95 2:ddd2659db993 464
Jepalacioh 0:c2ed510ee88d 465
Jepalacioh 0:c2ed510ee88d 466 break;
Jepalacioh 0:c2ed510ee88d 467
CristihanPerez95 2:ddd2659db993 468 case 3: //Desactivar o aplazar la alarma
Jepalacioh 0:c2ed510ee88d 469
CristihanPerez95 2:ddd2659db993 470 if(alarma==0) //Desactivar
Jepalacioh 0:c2ed510ee88d 471 {
CristihanPerez95 2:ddd2659db993 472 myled=1;
CristihanPerez95 2:ddd2659db993 473 wait(0.5);
CristihanPerez95 2:ddd2659db993 474 myled=0;
CristihanPerez95 2:ddd2659db993 475 wait(0.5);
CristihanPerez95 2:ddd2659db993 476
Jepalacioh 0:c2ed510ee88d 477 m=wheel.getPulses();
Jepalacioh 0:c2ed510ee88d 478 if(m!=0)
Jepalacioh 0:c2ed510ee88d 479 {
Jepalacioh 0:c2ed510ee88d 480 alarma=1;
Jepalacioh 0:c2ed510ee88d 481 m=0;
Jepalacioh 0:c2ed510ee88d 482 wheel.reset();
Jepalacioh 0:c2ed510ee88d 483
Jepalacioh 0:c2ed510ee88d 484 lcd.locate(1,0);
Jepalacioh 0:c2ed510ee88d 485 lcd.printf("-");
Jepalacioh 0:c2ed510ee88d 486 lcd.locate(1,1);
Jepalacioh 0:c2ed510ee88d 487 lcd.printf(">");
Jepalacioh 0:c2ed510ee88d 488 }
Jepalacioh 0:c2ed510ee88d 489 }
Jepalacioh 0:c2ed510ee88d 490
Jepalacioh 0:c2ed510ee88d 491 ///////////////////
Jepalacioh 0:c2ed510ee88d 492
CristihanPerez95 2:ddd2659db993 493 if(alarma==1) //Posponer
Jepalacioh 0:c2ed510ee88d 494 {
CristihanPerez95 2:ddd2659db993 495 myled=1;
CristihanPerez95 2:ddd2659db993 496 wait(0.5);
CristihanPerez95 2:ddd2659db993 497 myled=0;
CristihanPerez95 2:ddd2659db993 498 wait(0.5);
CristihanPerez95 2:ddd2659db993 499
Jepalacioh 0:c2ed510ee88d 500 m=wheel.getPulses();
Jepalacioh 0:c2ed510ee88d 501 if(m!=0)
Jepalacioh 0:c2ed510ee88d 502 {
Jepalacioh 0:c2ed510ee88d 503 alarma=0;
Jepalacioh 0:c2ed510ee88d 504 m=0;
Jepalacioh 0:c2ed510ee88d 505 wheel.reset();
Jepalacioh 0:c2ed510ee88d 506
Jepalacioh 0:c2ed510ee88d 507 lcd.locate(1,0);
Jepalacioh 0:c2ed510ee88d 508 lcd.printf(">");
Jepalacioh 0:c2ed510ee88d 509 lcd.locate(1,1);
Jepalacioh 0:c2ed510ee88d 510 lcd.printf("-");
Jepalacioh 0:c2ed510ee88d 511 }
Jepalacioh 0:c2ed510ee88d 512 }
Jepalacioh 0:c2ed510ee88d 513
Jepalacioh 0:c2ed510ee88d 514 if (button_enco.falling())
Jepalacioh 0:c2ed510ee88d 515 {
CristihanPerez95 2:ddd2659db993 516 if(alarma==0) //Desactivar
Jepalacioh 0:c2ed510ee88d 517 {
CristihanPerez95 2:ddd2659db993 518 Lugar=2; //Volver a mostrar el tiempo
Jepalacioh 0:c2ed510ee88d 519 wheel.reset();
Jepalacioh 0:c2ed510ee88d 520 m=0;
CristihanPerez95 2:ddd2659db993 521 myled=1;
CristihanPerez95 2:ddd2659db993 522 lcd.cls();
Jepalacioh 0:c2ed510ee88d 523 }
CristihanPerez95 2:ddd2659db993 524 if(alarma==1) //Posponer
Jepalacioh 0:c2ed510ee88d 525 {
CristihanPerez95 2:ddd2659db993 526 Lugar=2; //Volver a mostrar el tiempo
CristihanPerez95 2:ddd2659db993 527 rtc.getTime(tm2);
Jepalacioh 0:c2ed510ee88d 528 if(tm.min!=58)
Jepalacioh 0:c2ed510ee88d 529 {
CristihanPerez95 2:ddd2659db993 530 Alarm[Select].min=tm2.min+2;
Jepalacioh 0:c2ed510ee88d 531 }
Jepalacioh 0:c2ed510ee88d 532 if(tm.min==59)
Jepalacioh 0:c2ed510ee88d 533 {
CristihanPerez95 2:ddd2659db993 534 Alarm[Select].min=0;
CristihanPerez95 2:ddd2659db993 535 Alarm[Select].hour=tm2.hour+1;
Jepalacioh 0:c2ed510ee88d 536 }
CristihanPerez95 2:ddd2659db993 537 Alarm[Select].sec=tm2.sec;
Jepalacioh 0:c2ed510ee88d 538 lcd.cls();
Jepalacioh 0:c2ed510ee88d 539 alarma=0;
CristihanPerez95 2:ddd2659db993 540 myled=1;
CristihanPerez95 2:ddd2659db993 541 }
Jepalacioh 0:c2ed510ee88d 542 }
Jepalacioh 0:c2ed510ee88d 543 break;
CristihanPerez95 2:ddd2659db993 544 }
CristihanPerez95 2:ddd2659db993 545 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CristihanPerez95 2:ddd2659db993 546 ////////////////////////////////////////////////Lectura del sensor IRDA///////////////////////////////////////////////////////////////////////
CristihanPerez95 2:ddd2659db993 547 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CristihanPerez95 2:ddd2659db993 548 while (StarReadIR)
CristihanPerez95 2:ddd2659db993 549 {
CristihanPerez95 2:ddd2659db993 550 fflush( stdin );
CristihanPerez95 2:ddd2659db993 551 lop1: if(!mode){
CristihanPerez95 2:ddd2659db993 552 header = irda.read_high_us();
CristihanPerez95 2:ddd2659db993 553 if(header>3500) goto seguir1;
CristihanPerez95 2:ddd2659db993 554 goto lop1;
CristihanPerez95 2:ddd2659db993 555 }
CristihanPerez95 2:ddd2659db993 556
CristihanPerez95 2:ddd2659db993 557 seguir1:
CristihanPerez95 2:ddd2659db993 558 for(i1=0;i1<numb;++i1){
CristihanPerez95 2:ddd2659db993 559 numP[i1] = irda.read_high_us(); //funcion para leer un pulso alto
CristihanPerez95 2:ddd2659db993 560 if (numP[i1]<1000){
CristihanPerez95 2:ddd2659db993 561 s=0;
CristihanPerez95 2:ddd2659db993 562 r='0';
CristihanPerez95 2:ddd2659db993 563 }else{
CristihanPerez95 2:ddd2659db993 564 s=1;
CristihanPerez95 2:ddd2659db993 565 r='1';
CristihanPerez95 2:ddd2659db993 566 }
CristihanPerez95 2:ddd2659db993 567 numbin[i1]=s;
CristihanPerez95 2:ddd2659db993 568 cadena[i1]=r;
CristihanPerez95 2:ddd2659db993 569 }
CristihanPerez95 2:ddd2659db993 570 if (!strcmp(cadena,uno)){
CristihanPerez95 2:ddd2659db993 571 Select=1;
CristihanPerez95 2:ddd2659db993 572 lcd.locate(8,1);
CristihanPerez95 2:ddd2659db993 573 lcd.printf("%d",Select);
CristihanPerez95 2:ddd2659db993 574 goto seguir1;
CristihanPerez95 2:ddd2659db993 575 }else if (!strcmp(cadena,dos)){
CristihanPerez95 2:ddd2659db993 576 Select=2;
CristihanPerez95 2:ddd2659db993 577 lcd.locate(8,1);
CristihanPerez95 2:ddd2659db993 578 lcd.printf("%d",Select);
CristihanPerez95 2:ddd2659db993 579 goto seguir1;
CristihanPerez95 2:ddd2659db993 580 }else if (!strcmp(cadena,tres)){
CristihanPerez95 2:ddd2659db993 581 Select=3;
CristihanPerez95 2:ddd2659db993 582 lcd.locate(8,1);
CristihanPerez95 2:ddd2659db993 583 lcd.printf("%d",Select);
CristihanPerez95 2:ddd2659db993 584 goto seguir1;
CristihanPerez95 2:ddd2659db993 585 }else if (!strcmp(cadena,cuatro)){
CristihanPerez95 2:ddd2659db993 586 Select=4;
CristihanPerez95 2:ddd2659db993 587 lcd.locate(8,1);
CristihanPerez95 2:ddd2659db993 588 lcd.printf("%d",Select);
CristihanPerez95 2:ddd2659db993 589 goto seguir1;
CristihanPerez95 2:ddd2659db993 590 }else if (!strcmp(cadena,cinco)){
CristihanPerez95 2:ddd2659db993 591 Select=5;
CristihanPerez95 2:ddd2659db993 592 lcd.locate(8,1);
CristihanPerez95 2:ddd2659db993 593 lcd.printf("%d",Select);
CristihanPerez95 2:ddd2659db993 594 goto seguir1;
CristihanPerez95 2:ddd2659db993 595 }else if (!strcmp(cadena,seis)){
CristihanPerez95 2:ddd2659db993 596 Select=6;
CristihanPerez95 2:ddd2659db993 597 lcd.locate(8,1);
CristihanPerez95 2:ddd2659db993 598 lcd.printf("%d",Select);
CristihanPerez95 2:ddd2659db993 599 goto seguir1;
CristihanPerez95 2:ddd2659db993 600 }else if (!strcmp(cadena,siete)){
CristihanPerez95 2:ddd2659db993 601 Select=7;
CristihanPerez95 2:ddd2659db993 602 lcd.locate(8,1);
CristihanPerez95 2:ddd2659db993 603 lcd.printf("%d",Select);
CristihanPerez95 2:ddd2659db993 604 goto seguir1;
CristihanPerez95 2:ddd2659db993 605 }else if(!strcmp(cadena,set)){
CristihanPerez95 2:ddd2659db993 606 Lugar=2;
CristihanPerez95 2:ddd2659db993 607 StarReadIR=0;
CristihanPerez95 2:ddd2659db993 608 header=0;
CristihanPerez95 2:ddd2659db993 609 lcd.cls();
CristihanPerez95 2:ddd2659db993 610 break;
CristihanPerez95 2:ddd2659db993 611 }
CristihanPerez95 2:ddd2659db993 612 }
CristihanPerez95 2:ddd2659db993 613 }
Jepalacioh 0:c2ed510ee88d 614 }