I'm using SDK 15.0.0 on nRF52832_xxaa.
I'm currently using RTC1 as a low frequency timer to keep track of time elapsed while my device is sleeping. This works well and I get a pretty accurate interrupt seven times a second to increment time elapsed. I've used this same code on a few projects (sdk 12.3.0 with nRF51 and sdk 15 nRF52) without issue.
However I am now using the nrf gfx library with an LCD screen that has an ST7735S controller. On calling nrf_gfx_init, the RTC1 interrupt handler stops from being called. After this, I can call nrf_gfx_uninit and the RTC1 handler is called and works as intended. I first initialize the RTC1 timer and then some time later initialize gfx driver.
I can't seem to find any information about this online and if this is expected behavior. Not sure what further information I can provide than this, so I'm really looking for some information on how the two may be interfering with each other so I have some idea of what to investigate.
FWIW here is my RTC init function:
static STATUS_t _timer_rtc_init (void) { ret_code_t err_code = nrf_drv_clock_init(); APP_ERROR_CHECK(err_code); nrf_drv_clock_lfclk_request(NULL); // Initialize RTC instance nrf_drv_rtc_config_t config = NRF_DRV_RTC_DEFAULT_CONFIG; config.prescaler = TIMER_RTC_PRESCALER; err_code = nrf_drv_rtc_init(&rtc, &config, _timer_rtc_handler); APP_ERROR_CHECK(err_code); // Enable tick event & interrupt nrf_drv_rtc_tick_enable(&rtc, true); // Power on RTC instance nrf_drv_rtc_enable(&rtc); return (STATUS_OK); }