]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - avr/z180-serv.c
RTC: Handle turn of the year correctly, detect uninitialized RTC (loss of VBAT)
[z180-stamp.git] / avr / z180-serv.c
index 69bcd9c609286d88e248927b73b334f8ed4f6c05..a815537ea0d9fdc0b8b92cfe7d8bcf749a05f395 100644 (file)
@@ -167,7 +167,7 @@ void do_msg_get_set_time(uint8_t subf, int len, uint8_t * msg)
                /* initialize t with current time */
                rc = rtc_get (&t);
 
-               if (rc == 0) {
+               if (rc >= 0) {
                        /* insert new date & time */
                        if (mk_date_time (len, msg, &t) != 0) {
                                my_puts_P(PSTR("## set_time: Bad date format\n"));
@@ -188,19 +188,16 @@ void do_msg_get_set_time(uint8_t subf, int len, uint8_t * msg)
                /* FALL TROUGH */
        case 2:                 /* get date & time */
                rc = rtc_get (&t);
+               if (rc >= 0) {
+                       time_t time;
+                       time = mk_gmtime(&t);
+                       //mktime(&t);
+                       gmtime_r(&time, &t);
 
-               if (rc) {
+                       mk_cpm_time(&t, cpm_time);
+               } else {
                        my_puts_P(PSTR("## get_time: Get date failed\n"));
-                       break;
                }
-
-               time_t time;
-               time = mk_gmtime(&t);
-               //mktime(&t);
-               gmtime_r(&time, &t);
-
-
-               mk_cpm_time(&t, cpm_time);
                break;
        }