diff --git a/sys/include/net/gnrc/lorawan.h b/sys/include/net/gnrc/lorawan.h index bf06c28ee3..f1d49c8d92 100644 --- a/sys/include/net/gnrc/lorawan.h +++ b/sys/include/net/gnrc/lorawan.h @@ -35,15 +35,15 @@ extern "C" { * @{ */ /** - * @brief maximum timer drift in percentage + * @brief maximum timer drift in per mille * * @note this is only a workaround to compensate inaccurate timers. * - * E.g a value of 0.1 means there's a positive drift of 0.1% (set timeout to + * E.g a value of 1 means there's a positive drift of 0.1% (set timeout to * 1000 ms => triggers after 1001 ms) */ #ifndef CONFIG_GNRC_LORAWAN_TIMER_DRIFT -#define CONFIG_GNRC_LORAWAN_TIMER_DRIFT 1 +#define CONFIG_GNRC_LORAWAN_TIMER_DRIFT 10 #endif /** diff --git a/sys/net/gnrc/link_layer/lorawan/gnrc_lorawan.c b/sys/net/gnrc/link_layer/lorawan/gnrc_lorawan.c index 36f0d24736..3db39dc850 100644 --- a/sys/net/gnrc/link_layer/lorawan/gnrc_lorawan.c +++ b/sys/net/gnrc/link_layer/lorawan/gnrc_lorawan.c @@ -30,7 +30,7 @@ /* This factor is used for converting "real" seconds into microcontroller * microseconds. This is done in order to correct timer drift. */ -#define _DRIFT_FACTOR (int) (US_PER_SEC * 100 / (100 + CONFIG_GNRC_LORAWAN_TIMER_DRIFT)) +#define _DRIFT_FACTOR (int) (US_PER_SEC * 100 / (100 + (CONFIG_GNRC_LORAWAN_TIMER_DRIFT / 10.0))) #define GNRC_LORAWAN_DL_RX2_DR_MASK (0x0F) /**< DL Settings DR Offset mask */ #define GNRC_LORAWAN_DL_RX2_DR_POS (0) /**< DL Settings DR Offset pos */