Alarm Clock

Dependencies:   TextLCD mbed

Fork of SmartRise_MBED by Austin Sloop

Revision:
6:73866b51e0b7
Parent:
4:33f3750fe70a
Child:
7:5412a6d7ef6d
--- a/TimeControl.cpp	Tue Jan 26 00:47:00 2016 +0000
+++ b/TimeControl.cpp	Tue Jan 26 01:14:35 2016 +0000
@@ -6,7 +6,7 @@
 DigitalIn HrAdjustUp(p6);
 DigitalIn HrAdjustDown(p7);
 DigitalIn MinAdjust(p8);    //buttons for setting time and alarm
-DigitalIn AlarmAdjust(p9);
+
 DigitalOut arm(p12);
 
 struct tm* t;
@@ -16,26 +16,25 @@
 Timer set; 
 
 void time_init(void){           //starting time and timers   
-    time_t rawTime;
     set.start();
-
+    AHH=12;Amm=0;
 }
 
-void timeDisplay(void){
+void timeDisplay(void){                     //main time management function and display
+    time_t rawTime;
     time(&rawTime);    
     t = localtime(&rawTime);
     HH=t->tm_hour; mm=t->tm_min;                        //updating local hr and min var
     
-    //TIME
+    //TIME format
     if(HH>12)hh=HH-12;    else hh=HH+1;                 //convert 24 to 12 hr
     if(HH>=12) d='P';     else d='A';                   //update am/pm
-    //Alarm
+    //Alarm format
     if(AHH>12)Ahh=AHH-12;   else Ahh=AHH+1;             //convert 24 to 12 hr
     if(AHH>=12) ad='P';     else ad='A';
-    
-            
+             
     lcd.printf("  %2d/%.2d %2d:%.2d%cM Alarm-%2I:%.2I%cM   " , t->tm_mon+1,t->tm_mday,hh,t->tm_min,d,Ahh,Amm,ad);  //Print date(month/day), time    
-    
+}    
     
 
 
@@ -50,4 +49,21 @@
     }
 }
 
+void timeProg(void){
+    time_t seconds = time(NULL);
+    if(set.read()>0.3){
+        if(HrAdjustUp==1){
+            set_time(seconds+60*60);
+            set.reset();
+        }
+        if(HrAdjustDown==1){
+            set_time(seconds-60*60);
+            set.reset();
+        }
+        if(MinAdjust==1){
+            set_time(seconds+60);
+            set.reset();
+        }
+    }
+}