[ArduinoHal] fix clock drift calculation

This commit is contained in:
StevenCellist 2023-11-02 10:23:48 +01:00
parent f92e0e59d4
commit 6c093b2491

View file

@ -61,7 +61,7 @@ void inline ArduinoHal::delay(unsigned long ms) {
#if !defined(RADIOLIB_CLOCK_DRIFT_MS) #if !defined(RADIOLIB_CLOCK_DRIFT_MS)
::delay(ms); ::delay(ms);
#else #else
::delay(ms * (1000 - RADIOLIB_CLOCK_DRIFT_MS) / 1000); ::delay(ms * 1000 / (1000 + RADIOLIB_CLOCK_DRIFT_MS));
#endif #endif
} }
@ -69,7 +69,7 @@ void inline ArduinoHal::delayMicroseconds(unsigned long us) {
#if !defined(RADIOLIB_CLOCK_DRIFT_MS) #if !defined(RADIOLIB_CLOCK_DRIFT_MS)
::delayMicroseconds(us); ::delayMicroseconds(us);
#else #else
::delayMicroseconds(us * (1000 - RADIOLIB_CLOCK_DRIFT_MS) / 1000); ::delayMicroseconds(us * 1000 / (1000 + RADIOLIB_CLOCK_DRIFT_MS));
#endif #endif
} }
@ -77,7 +77,7 @@ unsigned long inline ArduinoHal::millis() {
#if !defined(RADIOLIB_CLOCK_DRIFT_MS) #if !defined(RADIOLIB_CLOCK_DRIFT_MS)
return(::millis()); return(::millis());
#else #else
return(::millis() * (1000 - RADIOLIB_CLOCK_DRIFT_MS) / 1000); return(::millis() * 1000 / (1000 + RADIOLIB_CLOCK_DRIFT_MS));
#endif #endif
} }
@ -85,7 +85,7 @@ unsigned long inline ArduinoHal::micros() {
#if !defined(RADIOLIB_CLOCK_DRIFT_MS) #if !defined(RADIOLIB_CLOCK_DRIFT_MS)
return(::micros()); return(::micros());
#else #else
return(::micros() * (1000 - RADIOLIB_CLOCK_DRIFT_MS) / 1000); return(::micros() * 1000 / (1000 + RADIOLIB_CLOCK_DRIFT_MS));
#endif #endif
} }