diff --git a/radio/src/gui/view_main.cpp b/radio/src/gui/view_main.cpp index 68d06566e..c91029d45 100644 --- a/radio/src/gui/view_main.cpp +++ b/radio/src/gui/view_main.cpp @@ -316,9 +316,7 @@ void displayTopBar() LCD_ICON(BAR_VOLUME_X, BAR_Y, ICON_SPEAKER3); /* RTC time */ - struct gtm t; - gettime(&t); - putsTime(BAR_TIME_X, BAR_Y+1, t, LEFT|TIMEBLINK); + putsRtcTime(BAR_TIME_X, BAR_Y+1, LEFT|TIMEBLINK); /* The background */ lcd_filled_rect(BAR_X, BAR_Y, BAR_W, BAR_H, SOLID, FILL_WHITE|GREY(12)|ROUND); diff --git a/radio/src/lcd.h b/radio/src/lcd.h index 4ad6ee64b..4c9156c68 100644 --- a/radio/src/lcd.h +++ b/radio/src/lcd.h @@ -215,7 +215,7 @@ void putsTelemetryChannel(xcoord_t x, uint8_t y, uint8_t channel, lcdint_t val, #define putstime_t int16_t #endif -void putsTime(xcoord_t x, uint8_t y, struct gtm t, LcdFlags att); +void putsRtcTime(xcoord_t x, uint8_t y, LcdFlags att); void putsTimer(xcoord_t x, uint8_t y, putstime_t tme, LcdFlags att, LcdFlags att2); #define SOLID 0xff diff --git a/radio/src/lcd_common.cpp b/radio/src/lcd_common.cpp index c3b4d3443..e30428e67 100644 --- a/radio/src/lcd_common.cpp +++ b/radio/src/lcd_common.cpp @@ -602,9 +602,9 @@ void lcdDrawTelemetryTopBar() #endif #if defined(CPUARM) && defined(RTCLOCK) -void putsTime(xcoord_t x, uint8_t y, struct gtm t, LcdFlags att) +void putsRtcTime(xcoord_t x, uint8_t y, LcdFlags att) { - putsTimer(x, y, t.tm_hour*60+t.tm_min, att, att); + putsTimer(x, y, getValue(MIXSRC_FIRST_TELEM-1+TELEM_TX_TIME), att, att); } #endif @@ -928,10 +928,7 @@ void putsTelemetryChannel(xcoord_t x, uint8_t y, uint8_t channel, lcdint_t val, #if defined(CPUARM) && defined(RTCLOCK) case TELEM_TX_TIME-1: { - gtm t; - t.tm_hour = val / 60; - t.tm_min = val % 60; - putsTime(x, y, t, att); + putsRtcTime(x, y, att); break; } #endif diff --git a/radio/src/mixer.cpp b/radio/src/mixer.cpp index b805932a2..dd537477e 100755 --- a/radio/src/mixer.cpp +++ b/radio/src/mixer.cpp @@ -326,11 +326,7 @@ getvalue_t getValue(uint8_t i) else if (i==MIXSRC_FIRST_TELEM-1+TELEM_TX_VOLTAGE) return g_vbat100mV; #if defined(CPUARM) && defined(RTCLOCK) - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_TX_TIME) { - struct gtm t; - gettime(&t); - return t.tm_hour*60 + t.tm_min; - } + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_TX_TIME) return (g_rtcTime % SECS_PER_DAY) / 60; // number of minutes from midnight #endif else if (i<=MIXSRC_FIRST_TELEM-1+TELEM_TIMER2) return timersStates[i-MIXSRC_FIRST_TELEM+1-TELEM_TIMER1].val; #if defined(FRSKY) diff --git a/radio/src/rtc.cpp b/radio/src/rtc.cpp index a13d9696e..0cf0e01f2 100644 --- a/radio/src/rtc.cpp +++ b/radio/src/rtc.cpp @@ -107,9 +107,6 @@ verify (twos_complement_arithmetic, TYPE_TWOS_COMPLEMENT (int)); #define TM_YEAR_BASE 1900 verify (base_year_is_a_multiple_of_100, TM_YEAR_BASE % 100 == 0); -#define SECS_PER_HOUR 3600ul -#define SECS_PER_DAY 86400ul - /* Return 1 if YEAR + TM_YEAR_BASE is a leap year. */ static inline int leapyear (long int year) diff --git a/radio/src/rtc.h b/radio/src/rtc.h index 7a2a216e6..dfefb4b84 100644 --- a/radio/src/rtc.h +++ b/radio/src/rtc.h @@ -39,6 +39,9 @@ #include +#define SECS_PER_HOUR 3600ul +#define SECS_PER_DAY 86400ul + typedef long int gtime_t; struct gtm