diff --git a/boards/common/nrf51/include/cfg_rtt_default.h b/boards/common/nrf51/include/cfg_rtt_default.h index 45a15b380a..46ccd3db1c 100644 --- a/boards/common/nrf51/include/cfg_rtt_default.h +++ b/boards/common/nrf51/include/cfg_rtt_default.h @@ -29,11 +29,21 @@ extern "C" { * @name Real time counter configuration * @{ */ -#define RTT_DEV (1) /* NRF_RTC1 */ -#define RTT_MAX_VALUE (0x00ffffff) -#define RTT_FREQUENCY (1024) +#ifndef RTT_DEV +#define RTT_DEV (1) /* NRF_RTC1 */ +#endif + +#define RTT_MAX_VALUE (0x00ffffff) /* 24bit */ +#define RTT_MAX_FREQUENCY (32768U) /* in Hz */ +#define RTT_MIN_FREQUENCY (8U) /* in Hz */ +#define RTT_CLOCK_FREQUENCY (32768U) /* in Hz, LFCLK*/ + +#ifndef RTT_FREQUENCY +#define RTT_FREQUENCY (1024U) /* in Hz */ +#endif /** @} */ + #ifdef __cplusplus } /* end extern "C" */ #endif diff --git a/boards/common/nrf52/include/cfg_rtt_default.h b/boards/common/nrf52/include/cfg_rtt_default.h index f65a6d2e04..6220aa7443 100644 --- a/boards/common/nrf52/include/cfg_rtt_default.h +++ b/boards/common/nrf52/include/cfg_rtt_default.h @@ -28,9 +28,18 @@ extern "C" { * @name Real time counter configuration * @{ */ -#define RTT_DEV (1) /* NRF_RTC1 */ -#define RTT_MAX_VALUE (0x00ffffff) -#define RTT_FREQUENCY (1024) +#ifndef RTT_DEV +#define RTT_DEV (1) /* NRF_RTC1 */ +#endif + +#define RTT_MAX_VALUE (0x00ffffff) /* 24bit */ +#define RTT_MAX_FREQUENCY (32768U) /* in Hz */ +#define RTT_MIN_FREQUENCY (8U) /* in Hz */ +#define RTT_CLOCK_FREQUENCY (32768U) /* in Hz, LFCLK*/ + +#ifndef RTT_FREQUENCY +#define RTT_FREQUENCY (1024U) /* in Hz */ +#endif /** @} */ #ifdef __cplusplus diff --git a/cpu/nrf5x_common/periph/rtt.c b/cpu/nrf5x_common/periph/rtt.c index c14a4f8d6d..36b113d91c 100644 --- a/cpu/nrf5x_common/periph/rtt.c +++ b/cpu/nrf5x_common/periph/rtt.c @@ -38,8 +38,6 @@ #error "RTT configuration: invalid or no RTC device specified (RTT_DEV)" #endif -#define LFCLK_FREQ (32768U) - /* allocate memory for callbacks and their args */ static rtt_cb_t alarm_cb; static void *alarm_arg; @@ -59,7 +57,7 @@ void rtt_init(void) /* configure interrupt */ NVIC_EnableIRQ(IRQn); /* set prescaler */ - DEV->PRESCALER = (LFCLK_FREQ / RTT_FREQUENCY) - 1; + DEV->PRESCALER = (RTT_CLOCK_FREQUENCY / RTT_FREQUENCY) - 1; /* start the actual RTT thing */ DEV->TASKS_START = 1; }