From 6c093b249169e365c3c6a779a0dcafc663a1d230 Mon Sep 17 00:00:00 2001 From: StevenCellist Date: Thu, 2 Nov 2023 10:23:48 +0100 Subject: [PATCH] [ArduinoHal] fix clock drift calculation --- src/ArduinoHal.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ArduinoHal.cpp b/src/ArduinoHal.cpp index 6beefa03..99bdbd38 100644 --- a/src/ArduinoHal.cpp +++ b/src/ArduinoHal.cpp @@ -61,7 +61,7 @@ void inline ArduinoHal::delay(unsigned long ms) { #if !defined(RADIOLIB_CLOCK_DRIFT_MS) ::delay(ms); #else - ::delay(ms * (1000 - RADIOLIB_CLOCK_DRIFT_MS) / 1000); + ::delay(ms * 1000 / (1000 + RADIOLIB_CLOCK_DRIFT_MS)); #endif } @@ -69,7 +69,7 @@ void inline ArduinoHal::delayMicroseconds(unsigned long us) { #if !defined(RADIOLIB_CLOCK_DRIFT_MS) ::delayMicroseconds(us); #else - ::delayMicroseconds(us * (1000 - RADIOLIB_CLOCK_DRIFT_MS) / 1000); + ::delayMicroseconds(us * 1000 / (1000 + RADIOLIB_CLOCK_DRIFT_MS)); #endif } @@ -77,7 +77,7 @@ unsigned long inline ArduinoHal::millis() { #if !defined(RADIOLIB_CLOCK_DRIFT_MS) return(::millis()); #else - return(::millis() * (1000 - RADIOLIB_CLOCK_DRIFT_MS) / 1000); + return(::millis() * 1000 / (1000 + RADIOLIB_CLOCK_DRIFT_MS)); #endif } @@ -85,7 +85,7 @@ unsigned long inline ArduinoHal::micros() { #if !defined(RADIOLIB_CLOCK_DRIFT_MS) return(::micros()); #else - return(::micros() * (1000 - RADIOLIB_CLOCK_DRIFT_MS) / 1000); + return(::micros() * 1000 / (1000 + RADIOLIB_CLOCK_DRIFT_MS)); #endif }