Tarea 5 - Configurar Reloj Y Alarma Juan Salvador Payares Ernesto Guevara
Dependencies: DS1307 DebouncedIn TextLCD mbed
main.cpp@0:d84f2d9bbeba, 2014-05-07 (annotated)
- Committer:
- payarito32
- Date:
- Wed May 07 16:21:14 2014 +0000
- Revision:
- 0:d84f2d9bbeba
Tarea5 - Configurar Reloj Y Alarma (DS1307); Juan Salvador Payares Iriarte; Ernesto Guevara ;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
payarito32 | 0:d84f2d9bbeba | 1 | #include "ds1307.h" |
payarito32 | 0:d84f2d9bbeba | 2 | #include "TextLCD.h" |
payarito32 | 0:d84f2d9bbeba | 3 | #include "mbed.h" |
payarito32 | 0:d84f2d9bbeba | 4 | #include "DebouncedIn.h" |
payarito32 | 0:d84f2d9bbeba | 5 | |
payarito32 | 0:d84f2d9bbeba | 6 | Serial pc(USBTX, USBRX); // tx, rx for debug and usb pc comunications |
payarito32 | 0:d84f2d9bbeba | 7 | //TextLCD lcd(p15, p16, p17, p18, p19, p20, TextLCD::LCD40x2); // rs, e, d4-d7 |
payarito32 | 0:d84f2d9bbeba | 8 | TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); |
payarito32 | 0:d84f2d9bbeba | 9 | DS1307 my1307(PTE0,PTE1); // start DS1307 class and give it pins for connections of the DS1307 device |
payarito32 | 0:d84f2d9bbeba | 10 | DebouncedIn p1(PTE20); |
payarito32 | 0:d84f2d9bbeba | 11 | DebouncedIn p2(PTE21); |
payarito32 | 0:d84f2d9bbeba | 12 | DebouncedIn p3(PTE22); |
payarito32 | 0:d84f2d9bbeba | 13 | int contador=1; |
payarito32 | 0:d84f2d9bbeba | 14 | int contador2 = 0; |
payarito32 | 0:d84f2d9bbeba | 15 | int hours1; |
payarito32 | 0:d84f2d9bbeba | 16 | int min1=-1; |
payarito32 | 0:d84f2d9bbeba | 17 | int sec1=0; |
payarito32 | 0:d84f2d9bbeba | 18 | int column; |
payarito32 | 0:d84f2d9bbeba | 19 | int fila; |
payarito32 | 0:d84f2d9bbeba | 20 | int C2=0x18; // desplaza izquierda |
payarito32 | 0:d84f2d9bbeba | 21 | int C3=0x1A; // desplaza derecha |
payarito32 | 0:d84f2d9bbeba | 22 | int C4=0x0C; // quito cursor bajo |
payarito32 | 0:d84f2d9bbeba | 23 | int C1=0x0F; |
payarito32 | 0:d84f2d9bbeba | 24 | |
payarito32 | 0:d84f2d9bbeba | 25 | DigitalOut sound(PTC5); //Salida de Audio Digital |
payarito32 | 0:d84f2d9bbeba | 26 | bool k=false; //bandera que indica que la alarma esta o no activada |
payarito32 | 0:d84f2d9bbeba | 27 | bool on=false; //Bandera que indica que la alarma esta o no sonando |
payarito32 | 0:d84f2d9bbeba | 28 | bool apagar=false; |
payarito32 | 0:d84f2d9bbeba | 29 | int sec = 48; // Values to set time with |
payarito32 | 0:d84f2d9bbeba | 30 | int min = 59; |
payarito32 | 0:d84f2d9bbeba | 31 | int hours = 06; |
payarito32 | 0:d84f2d9bbeba | 32 | int day = 2; |
payarito32 | 0:d84f2d9bbeba | 33 | int date = 12; |
payarito32 | 0:d84f2d9bbeba | 34 | int month = 5; |
payarito32 | 0:d84f2d9bbeba | 35 | int year = 16; |
payarito32 | 0:d84f2d9bbeba | 36 | int loop = 10; // Non zero value for the while loop |
payarito32 | 0:d84f2d9bbeba | 37 | |
payarito32 | 0:d84f2d9bbeba | 38 | |
payarito32 | 0:d84f2d9bbeba | 39 | void test_rw(int test) { |
payarito32 | 0:d84f2d9bbeba | 40 | if (test == 0) pc.printf("Last R/W operation passed!\n\r"); |
payarito32 | 0:d84f2d9bbeba | 41 | else pc.printf("Last R/W operation failed!\n\r"); |
payarito32 | 0:d84f2d9bbeba | 42 | } |
payarito32 | 0:d84f2d9bbeba | 43 | |
payarito32 | 0:d84f2d9bbeba | 44 | int main() { |
payarito32 | 0:d84f2d9bbeba | 45 | |
payarito32 | 0:d84f2d9bbeba | 46 | test_rw(my1307.settime( sec, min, hours, day, date, month, year)); // Set the time on the DS1307 |
payarito32 | 0:d84f2d9bbeba | 47 | |
payarito32 | 0:d84f2d9bbeba | 48 | |
payarito32 | 0:d84f2d9bbeba | 49 | while (loop>0){ // Loop continously |
payarito32 | 0:d84f2d9bbeba | 50 | test_rw(my1307.gettime( &sec, &min, &hours, &day, &date, &month, &year)); |
payarito32 | 0:d84f2d9bbeba | 51 | lcd.locate(0,0); // Print and refresh data on line 2 of the LCD display |
payarito32 | 0:d84f2d9bbeba | 52 | lcd.printf("%.2D",hours); |
payarito32 | 0:d84f2d9bbeba | 53 | lcd.printf(":%.2D",min); |
payarito32 | 0:d84f2d9bbeba | 54 | lcd.printf(":%.2D",sec); |
payarito32 | 0:d84f2d9bbeba | 55 | lcd.locate(0,1); |
payarito32 | 0:d84f2d9bbeba | 56 | lcd.printf("%.2D",month); |
payarito32 | 0:d84f2d9bbeba | 57 | lcd.printf("/%.2D",date); |
payarito32 | 0:d84f2d9bbeba | 58 | lcd.printf("/%.2D",year); |
payarito32 | 0:d84f2d9bbeba | 59 | |
payarito32 | 0:d84f2d9bbeba | 60 | |
payarito32 | 0:d84f2d9bbeba | 61 | //Presionar Pulsador 1 |
payarito32 | 0:d84f2d9bbeba | 62 | if(p1.falling()){ //Configurar Hora |
payarito32 | 0:d84f2d9bbeba | 63 | |
payarito32 | 0:d84f2d9bbeba | 64 | if(k==true & apagar==false){ //Stop Alarm, recuerda agregar mensaje de pausa |
payarito32 | 0:d84f2d9bbeba | 65 | k =false; |
payarito32 | 0:d84f2d9bbeba | 66 | wait(1); |
payarito32 | 0:d84f2d9bbeba | 67 | if(p1==0){ |
payarito32 | 0:d84f2d9bbeba | 68 | apagar = true; |
payarito32 | 0:d84f2d9bbeba | 69 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 70 | lcd.printf("Alarm Desact"); |
payarito32 | 0:d84f2d9bbeba | 71 | wait(1); |
payarito32 | 0:d84f2d9bbeba | 72 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 73 | lcd.printf(" "); |
payarito32 | 0:d84f2d9bbeba | 74 | lcd.locate(0,1); |
payarito32 | 0:d84f2d9bbeba | 75 | lcd.printf("Alarm Desact"); |
payarito32 | 0:d84f2d9bbeba | 76 | wait(1); |
payarito32 | 0:d84f2d9bbeba | 77 | lcd.locate(0,1); |
payarito32 | 0:d84f2d9bbeba | 78 | lcd.printf(" "); |
payarito32 | 0:d84f2d9bbeba | 79 | hours1=0; |
payarito32 | 0:d84f2d9bbeba | 80 | min1=0; |
payarito32 | 0:d84f2d9bbeba | 81 | sec1=0; |
payarito32 | 0:d84f2d9bbeba | 82 | }//cierro p1==0 |
payarito32 | 0:d84f2d9bbeba | 83 | if(apagar==false){ |
payarito32 | 0:d84f2d9bbeba | 84 | sec1=sec+10; |
payarito32 | 0:d84f2d9bbeba | 85 | if(sec1>59){ |
payarito32 | 0:d84f2d9bbeba | 86 | min1 = min1 +1; |
payarito32 | 0:d84f2d9bbeba | 87 | sec1 = sec1-60; |
payarito32 | 0:d84f2d9bbeba | 88 | lcd.locate(9,1); |
payarito32 | 0:d84f2d9bbeba | 89 | lcd.printf("M.A: %.2d",min1); //actualiza, Minutos de Alarma En pantalla |
payarito32 | 0:d84f2d9bbeba | 90 | }//cierro if sec > 59 |
payarito32 | 0:d84f2d9bbeba | 91 | |
payarito32 | 0:d84f2d9bbeba | 92 | }//cierro Apagar == false |
payarito32 | 0:d84f2d9bbeba | 93 | }//cierro k = true && apagar == false |
payarito32 | 0:d84f2d9bbeba | 94 | |
payarito32 | 0:d84f2d9bbeba | 95 | |
payarito32 | 0:d84f2d9bbeba | 96 | if(contador ==2){ |
payarito32 | 0:d84f2d9bbeba | 97 | |
payarito32 | 0:d84f2d9bbeba | 98 | //lcd.locate(9,0); |
payarito32 | 0:d84f2d9bbeba | 99 | ++hours; |
payarito32 | 0:d84f2d9bbeba | 100 | |
payarito32 | 0:d84f2d9bbeba | 101 | if(hours>23){//ajuste de hora |
payarito32 | 0:d84f2d9bbeba | 102 | hours = 0; |
payarito32 | 0:d84f2d9bbeba | 103 | }//Fin if hoours >23 |
payarito32 | 0:d84f2d9bbeba | 104 | |
payarito32 | 0:d84f2d9bbeba | 105 | //lcd.printf("Hora: %.2D ", hours); |
payarito32 | 0:d84f2d9bbeba | 106 | test_rw(my1307.settime( sec, min, hours, day, date, month, year)); // Set the time on the DS1307 |
payarito32 | 0:d84f2d9bbeba | 107 | //wait(0.5); |
payarito32 | 0:d84f2d9bbeba | 108 | |
payarito32 | 0:d84f2d9bbeba | 109 | |
payarito32 | 0:d84f2d9bbeba | 110 | }//Cierro if contador ==2 |
payarito32 | 0:d84f2d9bbeba | 111 | |
payarito32 | 0:d84f2d9bbeba | 112 | if(contador == 3){ |
payarito32 | 0:d84f2d9bbeba | 113 | ++min; |
payarito32 | 0:d84f2d9bbeba | 114 | |
payarito32 | 0:d84f2d9bbeba | 115 | if(min>59){ //Ajuste de minutos |
payarito32 | 0:d84f2d9bbeba | 116 | min = 0; |
payarito32 | 0:d84f2d9bbeba | 117 | } //cierro if min > 59 |
payarito32 | 0:d84f2d9bbeba | 118 | test_rw(my1307.settime( sec, min, hours, day, date, month, year)); // Set the time on the DS1307 |
payarito32 | 0:d84f2d9bbeba | 119 | } //Cierro if contador ==3 |
payarito32 | 0:d84f2d9bbeba | 120 | |
payarito32 | 0:d84f2d9bbeba | 121 | if(contador == 4){//configurar mes |
payarito32 | 0:d84f2d9bbeba | 122 | ++month; |
payarito32 | 0:d84f2d9bbeba | 123 | if(month > 12){ //ajuste de meses |
payarito32 | 0:d84f2d9bbeba | 124 | month =1; |
payarito32 | 0:d84f2d9bbeba | 125 | }//cierro mont > 12 |
payarito32 | 0:d84f2d9bbeba | 126 | |
payarito32 | 0:d84f2d9bbeba | 127 | test_rw(my1307.settime( sec, min, hours, day, date, month, year)); // Set the time on the DS1307 |
payarito32 | 0:d84f2d9bbeba | 128 | }//cierro contador ==4 |
payarito32 | 0:d84f2d9bbeba | 129 | |
payarito32 | 0:d84f2d9bbeba | 130 | |
payarito32 | 0:d84f2d9bbeba | 131 | if(contador ==5){ |
payarito32 | 0:d84f2d9bbeba | 132 | ++date; |
payarito32 | 0:d84f2d9bbeba | 133 | if(month==1 || month ==3 || month == 5 || month == 7 || month ==8 || month ==10 || month ==12 ){//ajuste de 31 dias |
payarito32 | 0:d84f2d9bbeba | 134 | if(date > 31){ |
payarito32 | 0:d84f2d9bbeba | 135 | date=01; |
payarito32 | 0:d84f2d9bbeba | 136 | }//Cierro day >31 |
payarito32 | 0:d84f2d9bbeba | 137 | }//cierro condicion meses con 31 dias |
payarito32 | 0:d84f2d9bbeba | 138 | |
payarito32 | 0:d84f2d9bbeba | 139 | if( month ==4 || month == 6 || month == 9 || month ==11){//ajuste de 30 dias |
payarito32 | 0:d84f2d9bbeba | 140 | if(date >30){ |
payarito32 | 0:d84f2d9bbeba | 141 | date=01; |
payarito32 | 0:d84f2d9bbeba | 142 | }//Cierro day >30 |
payarito32 | 0:d84f2d9bbeba | 143 | }//Cierro condicion meses de 30 dias |
payarito32 | 0:d84f2d9bbeba | 144 | |
payarito32 | 0:d84f2d9bbeba | 145 | if(month==2 ){//ajuste de 28 dias |
payarito32 | 0:d84f2d9bbeba | 146 | |
payarito32 | 0:d84f2d9bbeba | 147 | if((year+2000) % 4 ==0){ //configuracion año viciesto |
payarito32 | 0:d84f2d9bbeba | 148 | if(date >29){ |
payarito32 | 0:d84f2d9bbeba | 149 | date=1; |
payarito32 | 0:d84f2d9bbeba | 150 | }//cierro if date> 29 |
payarito32 | 0:d84f2d9bbeba | 151 | |
payarito32 | 0:d84f2d9bbeba | 152 | |
payarito32 | 0:d84f2d9bbeba | 153 | }//Cierro año viciesto |
payarito32 | 0:d84f2d9bbeba | 154 | |
payarito32 | 0:d84f2d9bbeba | 155 | if((year+2000) % 4 != 0){ //configuracion año viciesto |
payarito32 | 0:d84f2d9bbeba | 156 | if(date >28){ |
payarito32 | 0:d84f2d9bbeba | 157 | date=1; |
payarito32 | 0:d84f2d9bbeba | 158 | }//cierro if date> 28 |
payarito32 | 0:d84f2d9bbeba | 159 | |
payarito32 | 0:d84f2d9bbeba | 160 | |
payarito32 | 0:d84f2d9bbeba | 161 | }//Cierro año NO viciesto |
payarito32 | 0:d84f2d9bbeba | 162 | |
payarito32 | 0:d84f2d9bbeba | 163 | |
payarito32 | 0:d84f2d9bbeba | 164 | }//cierro if month ==2 |
payarito32 | 0:d84f2d9bbeba | 165 | |
payarito32 | 0:d84f2d9bbeba | 166 | test_rw(my1307.settime( sec, min, hours, day, date, month, year)); // Set the time on the DS1307 |
payarito32 | 0:d84f2d9bbeba | 167 | }//cierro if contador ==5 |
payarito32 | 0:d84f2d9bbeba | 168 | |
payarito32 | 0:d84f2d9bbeba | 169 | if(contador == 6){ //Aumentar años |
payarito32 | 0:d84f2d9bbeba | 170 | ++year; |
payarito32 | 0:d84f2d9bbeba | 171 | test_rw(my1307.settime( sec, min, hours, day, date, month, year)); // Set the time on the DS1307 |
payarito32 | 0:d84f2d9bbeba | 172 | }//cierro if contador ==6 |
payarito32 | 0:d84f2d9bbeba | 173 | |
payarito32 | 0:d84f2d9bbeba | 174 | |
payarito32 | 0:d84f2d9bbeba | 175 | //Configuracin De Alarma |
payarito32 | 0:d84f2d9bbeba | 176 | if(contador2==1){ |
payarito32 | 0:d84f2d9bbeba | 177 | hours1++; |
payarito32 | 0:d84f2d9bbeba | 178 | if(hours1>23){ |
payarito32 | 0:d84f2d9bbeba | 179 | hours1= 0; |
payarito32 | 0:d84f2d9bbeba | 180 | }//Cierro hours1>23 |
payarito32 | 0:d84f2d9bbeba | 181 | lcd.locate(9,0); |
payarito32 | 0:d84f2d9bbeba | 182 | lcd.printf("H.A: %.2d",hours1); |
payarito32 | 0:d84f2d9bbeba | 183 | }//Cierro if contador2==1 |
payarito32 | 0:d84f2d9bbeba | 184 | |
payarito32 | 0:d84f2d9bbeba | 185 | if(contador2==2){ |
payarito32 | 0:d84f2d9bbeba | 186 | min1++; |
payarito32 | 0:d84f2d9bbeba | 187 | if(min1>59){ |
payarito32 | 0:d84f2d9bbeba | 188 | min1= 0; |
payarito32 | 0:d84f2d9bbeba | 189 | }//Cierro hours1>23 |
payarito32 | 0:d84f2d9bbeba | 190 | lcd.locate(9,1); |
payarito32 | 0:d84f2d9bbeba | 191 | lcd.printf("M.A: %.2d",min1); |
payarito32 | 0:d84f2d9bbeba | 192 | |
payarito32 | 0:d84f2d9bbeba | 193 | }//Cierro if contador2==1 |
payarito32 | 0:d84f2d9bbeba | 194 | |
payarito32 | 0:d84f2d9bbeba | 195 | |
payarito32 | 0:d84f2d9bbeba | 196 | }//Fin p1.falling |
payarito32 | 0:d84f2d9bbeba | 197 | |
payarito32 | 0:d84f2d9bbeba | 198 | //Presionar Pulsador 2 |
payarito32 | 0:d84f2d9bbeba | 199 | if(p2.falling()){ //Reset |
payarito32 | 0:d84f2d9bbeba | 200 | contador = contador+1; |
payarito32 | 0:d84f2d9bbeba | 201 | |
payarito32 | 0:d84f2d9bbeba | 202 | |
payarito32 | 0:d84f2d9bbeba | 203 | if(contador>0){ |
payarito32 | 0:d84f2d9bbeba | 204 | contador2=0; |
payarito32 | 0:d84f2d9bbeba | 205 | } |
payarito32 | 0:d84f2d9bbeba | 206 | |
payarito32 | 0:d84f2d9bbeba | 207 | if(contador ==1){ |
payarito32 | 0:d84f2d9bbeba | 208 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 209 | lcd.printf("1-Reset"); |
payarito32 | 0:d84f2d9bbeba | 210 | wait(0.6); |
payarito32 | 0:d84f2d9bbeba | 211 | lcd.printf(" "); |
payarito32 | 0:d84f2d9bbeba | 212 | }//cierro if contador ==1 |
payarito32 | 0:d84f2d9bbeba | 213 | |
payarito32 | 0:d84f2d9bbeba | 214 | if(contador==2){ //configurar Hora |
payarito32 | 0:d84f2d9bbeba | 215 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 216 | |
payarito32 | 0:d84f2d9bbeba | 217 | lcd.printf("2-Conf. hora"); |
payarito32 | 0:d84f2d9bbeba | 218 | wait(0.6); |
payarito32 | 0:d84f2d9bbeba | 219 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 220 | lcd.printf(" "); |
payarito32 | 0:d84f2d9bbeba | 221 | |
payarito32 | 0:d84f2d9bbeba | 222 | }//Cierro if contador ==2 |
payarito32 | 0:d84f2d9bbeba | 223 | |
payarito32 | 0:d84f2d9bbeba | 224 | if(contador==3){ //configurar minutos |
payarito32 | 0:d84f2d9bbeba | 225 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 226 | |
payarito32 | 0:d84f2d9bbeba | 227 | lcd.printf("3-Conf. Min"); |
payarito32 | 0:d84f2d9bbeba | 228 | wait(0.6); |
payarito32 | 0:d84f2d9bbeba | 229 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 230 | lcd.printf(" "); |
payarito32 | 0:d84f2d9bbeba | 231 | |
payarito32 | 0:d84f2d9bbeba | 232 | }//Cierro if contador ==3 |
payarito32 | 0:d84f2d9bbeba | 233 | |
payarito32 | 0:d84f2d9bbeba | 234 | if(contador ==4){ |
payarito32 | 0:d84f2d9bbeba | 235 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 236 | lcd.printf("4-Conf. Mes"); |
payarito32 | 0:d84f2d9bbeba | 237 | |
payarito32 | 0:d84f2d9bbeba | 238 | wait(0.6); |
payarito32 | 0:d84f2d9bbeba | 239 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 240 | lcd.printf(" "); |
payarito32 | 0:d84f2d9bbeba | 241 | }//cierro if contador ==4 |
payarito32 | 0:d84f2d9bbeba | 242 | |
payarito32 | 0:d84f2d9bbeba | 243 | if(contador == 5){ |
payarito32 | 0:d84f2d9bbeba | 244 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 245 | lcd.printf("5-Conf. Dia"); |
payarito32 | 0:d84f2d9bbeba | 246 | |
payarito32 | 0:d84f2d9bbeba | 247 | wait(0.6); |
payarito32 | 0:d84f2d9bbeba | 248 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 249 | lcd.printf(" "); |
payarito32 | 0:d84f2d9bbeba | 250 | |
payarito32 | 0:d84f2d9bbeba | 251 | }//Cierro if contador == 5 |
payarito32 | 0:d84f2d9bbeba | 252 | |
payarito32 | 0:d84f2d9bbeba | 253 | if(contador ==6){ |
payarito32 | 0:d84f2d9bbeba | 254 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 255 | lcd.printf("5-Conf. año"); //Se aumentan años en p1 y se disminuyen con p3 (ver p3 debajo) |
payarito32 | 0:d84f2d9bbeba | 256 | |
payarito32 | 0:d84f2d9bbeba | 257 | wait(0.6); |
payarito32 | 0:d84f2d9bbeba | 258 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 259 | lcd.printf(" "); |
payarito32 | 0:d84f2d9bbeba | 260 | }//Cierro if contador ==6 |
payarito32 | 0:d84f2d9bbeba | 261 | |
payarito32 | 0:d84f2d9bbeba | 262 | if(contador>6){ //Reset Contador |
payarito32 | 0:d84f2d9bbeba | 263 | contador =1; |
payarito32 | 0:d84f2d9bbeba | 264 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 265 | lcd.printf("Config. Correct"); |
payarito32 | 0:d84f2d9bbeba | 266 | wait(0.6); |
payarito32 | 0:d84f2d9bbeba | 267 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 268 | lcd.printf(" "); |
payarito32 | 0:d84f2d9bbeba | 269 | }//Cierro contador > 6 |
payarito32 | 0:d84f2d9bbeba | 270 | |
payarito32 | 0:d84f2d9bbeba | 271 | }//Cierro if p2.falling() |
payarito32 | 0:d84f2d9bbeba | 272 | |
payarito32 | 0:d84f2d9bbeba | 273 | //Presionar Pulsador 3 |
payarito32 | 0:d84f2d9bbeba | 274 | if(p3.falling()){ |
payarito32 | 0:d84f2d9bbeba | 275 | |
payarito32 | 0:d84f2d9bbeba | 276 | if(contador==6){ |
payarito32 | 0:d84f2d9bbeba | 277 | --year; |
payarito32 | 0:d84f2d9bbeba | 278 | test_rw(my1307.settime( sec, min, hours, day, date, month, year)); // Set the time on the DS1307 |
payarito32 | 0:d84f2d9bbeba | 279 | contador2=0; |
payarito32 | 0:d84f2d9bbeba | 280 | |
payarito32 | 0:d84f2d9bbeba | 281 | }//Cierro if contador == 6 |
payarito32 | 0:d84f2d9bbeba | 282 | |
payarito32 | 0:d84f2d9bbeba | 283 | if(contador != 6){ |
payarito32 | 0:d84f2d9bbeba | 284 | |
payarito32 | 0:d84f2d9bbeba | 285 | contador=1; //Se asegura que no interceda a configurar la hora como loco cuando se configura la alarma |
payarito32 | 0:d84f2d9bbeba | 286 | contador2++; |
payarito32 | 0:d84f2d9bbeba | 287 | if(contador2==1){ |
payarito32 | 0:d84f2d9bbeba | 288 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 289 | lcd.printf("Alarm Hour"); |
payarito32 | 0:d84f2d9bbeba | 290 | wait(0.6); |
payarito32 | 0:d84f2d9bbeba | 291 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 292 | lcd.printf(" "); |
payarito32 | 0:d84f2d9bbeba | 293 | } //cierro contador2 ==1 |
payarito32 | 0:d84f2d9bbeba | 294 | |
payarito32 | 0:d84f2d9bbeba | 295 | if(contador2==2){ |
payarito32 | 0:d84f2d9bbeba | 296 | lcd.locate(0,1); |
payarito32 | 0:d84f2d9bbeba | 297 | lcd.printf("Alarm Minutes"); |
payarito32 | 0:d84f2d9bbeba | 298 | wait(0.6); |
payarito32 | 0:d84f2d9bbeba | 299 | lcd.locate(0,1); |
payarito32 | 0:d84f2d9bbeba | 300 | lcd.printf(" "); |
payarito32 | 0:d84f2d9bbeba | 301 | } //cierro contador2 ==1 |
payarito32 | 0:d84f2d9bbeba | 302 | |
payarito32 | 0:d84f2d9bbeba | 303 | if(contador2>2){ |
payarito32 | 0:d84f2d9bbeba | 304 | contador2=0; |
payarito32 | 0:d84f2d9bbeba | 305 | lcd.locate(0,0); |
payarito32 | 0:d84f2d9bbeba | 306 | lcd.printf("Activate"); |
payarito32 | 0:d84f2d9bbeba | 307 | wait(0.6); |
payarito32 | 0:d84f2d9bbeba | 308 | k = true; //alarma activada |
payarito32 | 0:d84f2d9bbeba | 309 | apagar=false; |
payarito32 | 0:d84f2d9bbeba | 310 | }//cierro if contador2 >2 |
payarito32 | 0:d84f2d9bbeba | 311 | |
payarito32 | 0:d84f2d9bbeba | 312 | }//Cierro contador != 6 |
payarito32 | 0:d84f2d9bbeba | 313 | |
payarito32 | 0:d84f2d9bbeba | 314 | }//cierro if p3.falling() |
payarito32 | 0:d84f2d9bbeba | 315 | |
payarito32 | 0:d84f2d9bbeba | 316 | //Activacion De Alarma |
payarito32 | 0:d84f2d9bbeba | 317 | if(hours == hours1 && k == true && apagar ==false){ |
payarito32 | 0:d84f2d9bbeba | 318 | if(min == min1){ |
payarito32 | 0:d84f2d9bbeba | 319 | if(sec>=sec1 && sec<=(sec1+10)){ |
payarito32 | 0:d84f2d9bbeba | 320 | on = true; |
payarito32 | 0:d84f2d9bbeba | 321 | for(int i=1; i<= 1000; ++i){ //ONDA CUADRADA, OSCILACIONES A 10 KHZ.... A VER SI FUNCIONA |
payarito32 | 0:d84f2d9bbeba | 322 | sound = 0; |
payarito32 | 0:d84f2d9bbeba | 323 | wait(0.00015); // Medio ciclo de dureza Arriba |
payarito32 | 0:d84f2d9bbeba | 324 | sound=1; |
payarito32 | 0:d84f2d9bbeba | 325 | wait(0.0005); // Medio ciclo Abajo |
payarito32 | 0:d84f2d9bbeba | 326 | |
payarito32 | 0:d84f2d9bbeba | 327 | if(k==false){ |
payarito32 | 0:d84f2d9bbeba | 328 | break; |
payarito32 | 0:d84f2d9bbeba | 329 | }//cierro if on==false |
payarito32 | 0:d84f2d9bbeba | 330 | }//Cierro For |
payarito32 | 0:d84f2d9bbeba | 331 | |
payarito32 | 0:d84f2d9bbeba | 332 | }//Cierro Sec>=0 && sec <30 |
payarito32 | 0:d84f2d9bbeba | 333 | }//Cierro min == min1 |
payarito32 | 0:d84f2d9bbeba | 334 | |
payarito32 | 0:d84f2d9bbeba | 335 | }//cierro hours==hours1 |
payarito32 | 0:d84f2d9bbeba | 336 | |
payarito32 | 0:d84f2d9bbeba | 337 | if(sec1>0 & k==false){ //alarma encendida, reactiva k para poder iniciar nuevamente cuando el tiempo se alcance otra vez |
payarito32 | 0:d84f2d9bbeba | 338 | k = true; |
payarito32 | 0:d84f2d9bbeba | 339 | }//Cierro if sec1>0 |
payarito32 | 0:d84f2d9bbeba | 340 | |
payarito32 | 0:d84f2d9bbeba | 341 | } //Cierro While loop >0 |
payarito32 | 0:d84f2d9bbeba | 342 | |
payarito32 | 0:d84f2d9bbeba | 343 | |
payarito32 | 0:d84f2d9bbeba | 344 | |
payarito32 | 0:d84f2d9bbeba | 345 | }//Cierro Main() |
payarito32 | 0:d84f2d9bbeba | 346 | |
payarito32 | 0:d84f2d9bbeba | 347 | |
payarito32 | 0:d84f2d9bbeba | 348 | |
payarito32 | 0:d84f2d9bbeba | 349 |