From 1f40ef677b67bcca9f3861751669dc67c441b474 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Sat, 23 Jun 2012 09:26:43 +0200 Subject: src/common: reset when low voltage detected --- src/common/rtc.c | 3 +++ src/common/rtc.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/common/rtc.c b/src/common/rtc.c index d3a1c9a..2ab5f26 100644 --- a/src/common/rtc.c +++ b/src/common/rtc.c @@ -24,6 +24,7 @@ #include "common.h" #include "rtc.h" #include "modules/twi/twi.h" +#include "modules/utils/utils.h" #define RTC_STOP 0x20 #define RTC_GO 0 @@ -172,6 +173,8 @@ rtc_get_time (uint8_t *hour, uint8_t *minute, uint8_t *second) rtc_send_addr (RTC_REG_SECOND); twi_master_recv (RTC_ADDR, buffer, sizeof (buffer)); twi_master_wait (); + if (buffer[0] & 0x80) + utils_reset (); *second = rtc_bcd2bin (buffer[0] & 0x7f); *minute = rtc_bcd2bin (buffer[1] & 0x7f); *hour = rtc_bcd2bin (buffer[2] & 0x3f); diff --git a/src/common/rtc.h b/src/common/rtc.h index e379370..d413806 100644 --- a/src/common/rtc.h +++ b/src/common/rtc.h @@ -32,7 +32,7 @@ uint8_t rtc_init (void); -/** Get current timer. */ +/** Get current time (reset on low voltage event). */ void rtc_get_time (uint8_t *hour, uint8_t *minute, uint8_t *second); -- cgit v1.2.3