This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Issue with timer extended compare mode

Hello, I want timer to interrupt if timer is not restarted in 200ms and wrote below code.

void timerConfig (void){
    uint32_t time_ticks; 
    uint16_t time_ms;
    //Configure timer
    nrf_drv_timer_config_t timer_cfg = NRF_DRV_TIMER_DEFAULT_CONFIG;
    timer_cfg.bit_width =NRF_TIMER_BIT_WIDTH_32;
    timer_cfg.frequency =NRF_TIMER_FREQ_16MHz;
    uint32_t err_code = nrf_drv_timer_init(&controllerTimer, &timer_cfg, oneWireCommunicationTimerTimeouthandler);
    APP_ERROR_CHECK(err_code);
   time_ms = 200;  //200 ms timeout timer
   time_ticks = nrf_drv_timer_ms_to_ticks(&controllerTimer, time_ms);

  nrf_drv_timer_extended_compare(
         &controllerTimer, NRF_TIMER_CC_CHANNEL0, time_ticks, NRF_TIMER_SHORT_COMPARE1_CLEAR_MASK, true);


    nrf_drv_timer_disable(&controllerTimer);
    nrf_drv_timer_clear(&controllerTimer);
    nrf_drv_timer_enable(&controllerTimer);
}

I am restarted timer in few milliseconds using below but still I m getting interrupt. Please suggest.

//re-start the timer
nrf_drv_timer_disable(&controllerTimer);
nrf_drv_timer_clear(&controllerTimer);
nrf_drv_timer_enable(&controllerTimer);

Thanks

Parents Reply Children
Related