diff options
-rw-r--r-- | apps/alarm_menu.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/apps/alarm_menu.c b/apps/alarm_menu.c index 2f8c5ced47..9ccdcfc3c2 100644 --- a/apps/alarm_menu.c +++ b/apps/alarm_menu.c | |||
@@ -41,19 +41,24 @@ | |||
41 | bool alarm_screen(void) | 41 | bool alarm_screen(void) |
42 | { | 42 | { |
43 | /* get alarm time from RTC */ | 43 | /* get alarm time from RTC */ |
44 | 44 | ||
45 | int h, m, hour, minute; | 45 | int h, m, hour, minute; |
46 | 46 | ||
47 | rtc_get_alarm(&h, &m); | 47 | rtc_get_alarm(&h, &m); |
48 | 48 | ||
49 | m = m / 5 * 5; /* 5 min accuracy should be enough */ | 49 | if (m > 60 || h > 24) { /* after battery-change RTC-values are out of range */ |
50 | 50 | m = 0; | |
51 | h = 12; | ||
52 | } else { | ||
53 | m = m / 5 * 5; /* 5 min accuracy should be enough */ | ||
54 | } | ||
55 | |||
51 | bool done=false; | 56 | bool done=false; |
52 | char buf[32]; | 57 | char buf[32]; |
53 | 58 | ||
54 | lcd_clear_display(); | 59 | lcd_clear_display(); |
55 | lcd_puts(0,1, str(LANG_ALARM_MOD_KEYS)); | 60 | lcd_puts(0,1, str(LANG_ALARM_MOD_KEYS)); |
56 | 61 | ||
57 | while(!done) { | 62 | while(!done) { |
58 | snprintf(buf, 32, str(LANG_ALARM_MOD_TIME), h, m); | 63 | snprintf(buf, 32, str(LANG_ALARM_MOD_TIME), h, m); |
59 | lcd_puts(0,0, buf); | 64 | lcd_puts(0,0, buf); |