Tarea sobre el reloj con alarma.

Dependencies:   Debounced RTC-DS1307 TextLCD mbed

Fork of Rtc_Ds1307_lcd_alarma by Walter y Gregorio

Revision:
4:242b6afb651e
Parent:
3:cc43cc1af11a
--- a/main.cpp	Fri May 02 18:19:57 2014 +0000
+++ b/main.cpp	Thu May 08 05:08:26 2014 +0000
@@ -4,7 +4,7 @@
 #include "DebouncedIn.h"
 
 Rtc_Ds1307 rtc(PTE0, PTE1);
-TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5);
+TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5);// rs, e, d4-d7
 Serial pc(USBTX, USBRX, "pc");
 DebouncedIn button1(PTC12); //Incremental
 DebouncedIn button2(PTC13); //Decremental
@@ -28,7 +28,7 @@
 int p=0; //p es el valor del boton 3 para la ubicación del modificador de variables 0-no aparece, 1-h, 2-m, 3-s, 4-D, 5-M, 6-Y.
 //***************************************
 //Definicion de variables para la configuración de alarma
-int houral=0,minal=0,secal=0,dateal=1,monal=1,yearal=2014;
+int houral=2,minal=4,secal=0,dateal=8,monal=5,yearal=2014;
 Timer t; // se define la variable t, contabilizadora del tiempo desde el inicio de la alarma
 //*************************************
 int main(){
@@ -50,7 +50,9 @@
                     lcd.printf("Fech:%02d/%02d/%04d", tm.date, tm.mon, tm.year);
                 //Verificación de hora alarma
                 if (tm.hour==houral && tm.min==minal && tm.sec==secal && tm.date==dateal && tm.mon==monal && tm.year==yearal) {
-                    while(button1.falling() != 1) {
+                     
+                    while( button2==1) { // si el boton 2 se deja presionado sale del while lo que implica  que apaga la alarma
+                   
                         pw.period(Tdo); // aqui se indica la frecuencia para el sonido al pulsar el boton 1
                         pw.pulsewidth(Pdo);
                         wait(0.5);
@@ -66,32 +68,17 @@
                         pw.period(Tfa); // aqui se indica la frecuencia para el sonido al pulsar el boton 1
                         pw.pulsewidth(Pfa);
                         wait(0.5);
+                        pw=0; 
+                         if(button1.falling() ==1) { // si dentro del while se produce una interrupción en el boton 1 retrasa la alarma 1 min
+                        minal=minal+1;
                         pw=0;
+                        } 
                     }
-                    t.start();//comienza a contar el tiempo despues de apagar la alarma, para reiniciarla a los 30 seg
-                    if(t>=30){
-                        t.stop();
-                        while(button1.falling() != 1) {
-                            pw.period(Tdo); // aqui se indica la frecuencia para el sonido al pulsar el boton 1
-                            pw.pulsewidth(Pdo);
-                            wait(0.5);
-                            pw=0;
-                            pw.period(Tre); // aqui se indica la frecuencia para el sonido al pulsar el boton 1
-                            pw.pulsewidth(Pre);
-                            wait(0.5);
-                            pw=0;
-                            pw.period(Tmi); // aqui se indica la frecuencia para el sonido al pulsar el boton 1
-                            pw.pulsewidth(Pmi);
-                            wait(0.5);
-                            pw=0;
-                            pw.period(Tfa); // aqui se indica la frecuencia para el sonido al pulsar el boton 1
-                            pw.pulsewidth(Pfa);
-                            wait(0.5);
-                            pw=0;
-                        }
-                    }
-                }
-                
+                    
+    
+                }   
+                    
+    
                 if (button4.falling()) {
                     pw.period(Tfa); // aqui se indica la frecuencia para el sonido al pulsar el boton 1
                     pw.pulsewidth(Pfa);