Reloj Ds1307

Dependencies:   DS1307 DebouncedIn TextLCD mbed

Committer:
mescobart22
Date:
Wed May 14 14:18:08 2014 +0000
Revision:
0:121cbf1d2c0a
Tarea Reloj Ds1307; activa y desactiva alarma, ademas se puede modificar y cuadrar la hora.; Mauricio Escobar Tobon- Breiner Choles

Who changed what in which revision?

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