From 7956acb35e6ab63d34789d9b4dc9593f824ae923 Mon Sep 17 00:00:00 2001 From: Miguel Angel Mulero Martinez Date: Mon, 12 Jun 2017 20:17:39 +0200 Subject: [PATCH] Fix GPS coordinates in OSD --- src/main/io/osd.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/main/io/osd.c b/src/main/io/osd.c index 57bfe0ef1..7944e1d00 100755 --- a/src/main/io/osd.c +++ b/src/main/io/osd.c @@ -250,21 +250,20 @@ static void osdDrawSingleElement(uint8_t item) { int32_t val; if (item == OSD_GPS_LAT) { - buff[0] = 0x64; // right arrow + buff[0] = SYM_ARROW_EAST; val = GPS_coord[LAT]; } else { - buff[0] = 0x60; // down arrow + buff[0] = SYM_ARROW_SOUTH; val = GPS_coord[LON]; } - if (val >= 0) { - val += 1000000000; - } else { - val -= 1000000000; - } - itoa(val, &buff[1], 10); - buff[1] = buff[2]; - buff[2] = buff[3]; - buff[3] = '.'; + + char wholeDegreeString[5]; + tfp_sprintf(wholeDegreeString, "%d", val / GPS_DEGREES_DIVIDER); + + char wholeUnshifted[12]; + tfp_sprintf(wholeUnshifted, "%d", val); + + tfp_sprintf(buff + 1, "%s.%s", wholeDegreeString, wholeUnshifted + strlen(wholeDegreeString)); break; }