From 6268e5d4c755e526d8c6a30d44d6285226f51556 Mon Sep 17 00:00:00 2001 From: Alistair Francis Date: Tue, 2 Jul 2024 20:18:19 +1000 Subject: [PATCH] NonArduiono: Tock: Support RADIOLIB_CLOCK_DRIFT_MS Signed-off-by: Alistair Francis --- examples/NonArduino/Tock/libtockHal.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/examples/NonArduino/Tock/libtockHal.h b/examples/NonArduino/Tock/libtockHal.h index b4274465..7ae8bf2a 100644 --- a/examples/NonArduino/Tock/libtockHal.h +++ b/examples/NonArduino/Tock/libtockHal.h @@ -157,11 +157,19 @@ class TockHal : public RadioLibHal { } void delay(unsigned long ms) override { - libtocksync_alarm_delay_ms( ms ); +#if !defined(RADIOLIB_CLOCK_DRIFT_MS) + libtocksync_alarm_delay_ms(ms); +#else + libtocksync_alarm_delay_ms(ms * 1000 / (1000 + RADIOLIB_CLOCK_DRIFT_MS)); +#endif } void delayMicroseconds(unsigned long us) override { - libtocksync_alarm_delay_ms( us / 1000 ); +#if !defined(RADIOLIB_CLOCK_DRIFT_MS) + libtocksync_alarm_delay_ms(us / 1000); +#else + libtocksync_alarm_delay_ms((us * 1000 / (1000 + RADIOLIB_CLOCK_DRIFT_MS)) / 1000); +#endif } unsigned long millis() override { @@ -176,7 +184,11 @@ class TockHal : public RadioLibHal { ms = now / (frequency / 1000); +#if !defined(RADIOLIB_CLOCK_DRIFT_MS) return ms; +#else + return ms * 1000 / (1000 + RADIOLIB_CLOCK_DRIFT_MS); +#endif } unsigned long micros() override {