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);
}