diff --git a/bsp/nrf5x/libraries/drivers/drv_rtc.c b/bsp/nrf5x/libraries/drivers/drv_rtc.c index 96cda89de78f16abcf1064cbbaff42961abddf7d..e7a735952318471a405936675801967d815ecc3c 100644 --- a/bsp/nrf5x/libraries/drivers/drv_rtc.c +++ b/bsp/nrf5x/libraries/drivers/drv_rtc.c @@ -18,7 +18,7 @@ #ifdef BSP_USING_ONCHIP_RTC #define LOG_TAG "drv.rtc" -#define DBG_LVL DBG_LOG +#define DBG_LVL DBG_LOG #include /* 2018-01-30 14:44:50 = RTC_TIME_INIT(2018, 1, 30, 14, 44, 50) */ @@ -29,6 +29,10 @@ #define ONCHIP_RTC_TIME_DEFAULT RTC_TIME_INIT(2018, 1, 1, 0, 0 ,0) #endif +#ifndef RTC_INSTANCE_ID +#define RTC_INSTANCE_ID (2) +#endif + #define TICK_FREQUENCE_HZ (RT_TICK_PER_SECOND) // RTC tick frequence, in HZ static struct rt_device rtc; @@ -54,7 +58,7 @@ static rt_err_t rt_rtc_config(struct rt_device *dev) #define SYSTICK_CLOCK_HZ (32768UL) #define RTC_PRESCALER ((uint32_t) (NRFX_ROUNDED_DIV(SYSTICK_CLOCK_HZ, TICK_FREQUENCE_HZ) - 1)) - const nrfx_rtc_t rtc_instance = NRFX_RTC_INSTANCE(2); + const nrfx_rtc_t rtc_instance = NRFX_RTC_INSTANCE(RTC_INSTANCE_ID); nrf_clock_lf_src_set(NRF_CLOCK, (nrf_clock_lfclk_t)NRFX_CLOCK_CONFIG_LF_SRC); nrfx_clock_lfclk_start(); diff --git a/bsp/nrf5x/nrf52832/board/Kconfig b/bsp/nrf5x/nrf52832/board/Kconfig index 149464a836d38bf912bba9fea185a4a4b536f32e..41a3aa6c391a66e1b2706d6259f5fd92ce99cdad 100644 --- a/bsp/nrf5x/nrf52832/board/Kconfig +++ b/bsp/nrf5x/nrf52832/board/Kconfig @@ -318,21 +318,33 @@ endif bool "Enable RTC" select RT_USING_RTC select RT_USING_LIBC - select NRFX_CLOCK_ENABLED default n if BSP_USING_ONCHIP_RTC config NRFX_CLOCK_ENABLED int default 1 + config NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY + int + default 7 config NRFX_RTC_ENABLED int default 1 - config NRFX_RTC2_ENABLED - int + config NRFX_RTC0_ENABLED + int default 1 - config NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY + config NRFX_RTC1_ENABLED int - default 7 + default 1 + config NRFX_RTC2_ENABLED + int + default 1 + config RTC_INSTANCE_ID + int + default 2 + config RTC_INSTANCE_ID + int "select RTC instance id, must be 0, 1, 2" + range 0 2 + default 2 endif endmenu diff --git a/bsp/nrf5x/nrf52840/board/Kconfig b/bsp/nrf5x/nrf52840/board/Kconfig index 1a3fd7d8ba255f2e0771e3c09d690ed421762177..9ec3b5c71f9d41e3111cf47451d2ed5fbfdcd2b2 100644 --- a/bsp/nrf5x/nrf52840/board/Kconfig +++ b/bsp/nrf5x/nrf52840/board/Kconfig @@ -346,8 +346,41 @@ menu "On-chip Peripheral Drivers" int default 1 endif -endmenu + menuconfig BSP_USING_ONCHIP_RTC + bool "Enable RTC" + select RT_USING_RTC + select RT_USING_LIBC + default n + if BSP_USING_ONCHIP_RTC + config NRFX_CLOCK_ENABLED + int + default 1 + config NRFX_CLOCK_DEFAULT_CONFIG_IRQ_PRIORITY + int + default 7 + config NRFX_RTC_ENABLED + int + default 1 + config NRFX_RTC0_ENABLED + int + default 1 + config NRFX_RTC1_ENABLED + int + default 1 + config NRFX_RTC2_ENABLED + int + default 1 + config RTC_INSTANCE_ID + int + default 2 + config RTC_INSTANCE_ID + int "select RTC instance id, must be 0, 1, 2" + range 0 2 + default 2 + endif + +endmenu choice prompt "BLE STACK"