diff --git a/radio/src/tasks.cpp b/radio/src/tasks.cpp index 7c3895598..c5d6451c9 100644 --- a/radio/src/tasks.cpp +++ b/radio/src/tasks.cpp @@ -107,7 +107,7 @@ TASK_FUNCTION(mixerTask) static uint32_t lastRunTime; s_pulses_paused = true; - while (1) { + while (true) { #if defined(PCBTARANIS) && defined(SBUS) // SBUS trainer processSbusInput(); diff --git a/radio/src/telemetry/telemetry_sensors.cpp b/radio/src/telemetry/telemetry_sensors.cpp index 2b02b6845..779e072c6 100644 --- a/radio/src/telemetry/telemetry_sensors.cpp +++ b/radio/src/telemetry/telemetry_sensors.cpp @@ -34,7 +34,6 @@ bool isFaiForbidden(source_t idx) TelemetrySensor * sensor = &g_model.telemetrySensors[(idx-MIXSRC_FIRST_TELEM)/3]; switch (telemetryProtocol) { - case PROTOCOL_TELEMETRY_FRSKY_SPORT: if (sensor->id == RSSI_ID) { return false; @@ -355,11 +354,20 @@ void TelemetryItem::eval(const TelemetrySensor & sensor) } } uint32_t angle = abs(gpsItem.gps.latitude - gpsItem.pilotLatitude); +#if defined(STM32) uint32_t dist = uint64_t(EARTH_RADIUS * M_PI / 180) * angle / 1000000; +#else + // TODO search later why it breaks Sky9x + uint32_t dist = EARTH_RADIUS * angle / 1000000; +#endif uint32_t result = dist * dist; angle = abs(gpsItem.gps.longitude - gpsItem.pilotLongitude); +#if defined(STM32) dist = uint64_t(gpsItem.distFromEarthAxis) * angle / 1000000; +#else + dist = gpsItem.distFromEarthAxis * angle / 1000000; +#endif result += dist * dist; // Length on ground (ignoring curvature of the earth)