Pinky and the Brain / Mbed OS Clock

Dependencies:   SPI_TFT_ILI9341 TFT_fonts Adafruit_RTCLib RTC-DS1307 TSI

Revision:
21:fe1769d5a01c
Parent:
19:450dbcda696e
diff -r 450dbcda696e -r fe1769d5a01c utility.cpp
--- a/utility.cpp	Thu May 25 21:56:06 2017 +0000
+++ b/utility.cpp	Fri May 26 11:59:44 2017 +0000
@@ -33,10 +33,10 @@
     :   time(t), prevTime(p), weather(w), date(d), alarm(a), screenState(0), screenActive(true), duringAlarm(false) {}
 
 
-void playAlarmSound(StateClass *ps)
+void playAlarmSound()
 {
     PwmOut speaker(ALARM_PIN);      // alarm sound of regular beeps
-    while (ps->duringAlarm) {
+    while (programState->duringAlarm) {
         speaker.period(1.0/150.0);  // 150hz period
         speaker =0.0125;
         wait(0.5);
@@ -60,29 +60,38 @@
     return inches <= RANGE_THRESHOLD;
 }
 
-I2C master(RTC_SDA, RTC_SCL);
-RtcDs1307 rtc(master);
+//I2C master(RTC_SDA, RTC_SCL);
+Rtc_Ds1307 rtc(RTC_SDA, RTC_SCL);
 void read_rtc(StateClass *ps)
 {
-    LOG("IN RTC\r\n");
-    DateTime data = rtc.now();
-    LOG("%d:%d:%d", data.hour(), data.minute(), data.second());
-    if (!rtc.isRunning())
-        return;
-    ps->time->hour = data.hour();
-    ps->prevTime->hour = data.hour();
-    ps->time->minute = data.minute();
-    ps->prevTime->minute = data.minute();
-    ps->time->second = data.second();
-    ps->prevTime->second = data.second();
-    ps->date->year = data.year();
-    ps->date->day = data.day();
-    ps->date->month = data.month();
-    ps->date->dow = data.dayOfWeek();
+    Rtc_Ds1307::Time_rtc data = {};
+    int s = 0, m = 0, h = 0, dow = 0, d = 0, mo = 0, y = 0;
+    //rtc.gettime(&s, &m, &h, &dow, &d, &mo, &y);
+    rtc.getTime(data);
+    h = data.hour;
+    m = data.min;
+    s = data.sec;
+    dow = data.wday - 1;
+    d = data.date;
+    mo = data.mon;
+    y = data.year;
+    LOG("%d:%d:%d", h, m, s);
+    //if (!rtc.isRunning())
+    //    return;
+    ps->time->hour = h;
+    ps->prevTime->hour = h;
+    ps->time->minute = m;
+    ps->prevTime->minute = m;
+    ps->time->second = s;
+    ps->prevTime->second = s;
+    ps->date->year = y;
+    ps->date->day = d;
+    ps->date->month = mo;
+    ps->date->dow = dow-1;
 }
 
 void update_rtc(StateClass *ps)
 {
-    DateTime data(ps->date->year, ps->date->month, ps->date->day, ps->time->hour, ps->time->minute, ps->time->second);
-    rtc.adjust(data);
+    //DateTime data(ps->date->year, ps->date->month, ps->date->day, ps->time->hour, ps->time->minute, ps->time->second);
+    //rtc.adjust(data);
 }
\ No newline at end of file