Hi. We are using RTC2 in our application to trigger an event at 256Hz. We also have a compare running to trigger a compare event at 32Hz.
I have found that over an hour, event will have been running slowly about 98% of the rate it should be. Below is the code to setup the RTC.
How do I check that our external LF clk (crystal) is running and not the internal RC clock? This could be causing the problem / inaccuracy.
We are using the softdevice, but may be using the internal oscillator instead of the external one.
Thanks
/** @brief Function initialization and configuration of RTC driver instance. */ static void rtc_config(void) { uint32_t err_code; //Initialize RTC instance nrf_drv_rtc_config_t config = NRF_DRV_RTC_DEFAULT_CONFIG; config.prescaler = 127; //1023 = 32 Hz, 127 = 256 Hz config.interrupt_priority = 7; err_code = nrf_drv_rtc_init(&rtc, &config, rtc_handler); APP_ERROR_CHECK(err_code); //Enable tick event & interrupt nrf_drv_rtc_tick_enable(&rtc,true); //Set compare channel to trigger interrupt after COMPARE_COUNTERTIME seconds err_code = nrf_drv_rtc_cc_set(&rtc,2,8,true); //x8 = 32Hz APP_ERROR_CHECK(err_code); //Power on RTC instance nrf_drv_rtc_enable(&rtc); }