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

GPIOTE interrupt signal slow?

Dear Nordic,

I am having some apparent delays in the time that passes from the pressing of a button, and the execution of the ISR that this button triggers. I am using GPIOTE to generate this interrupt.

ret_code_t err_code;
err_code = nrf_drv_gpiote_init();
APP_ERROR_CHECK(err_code);
	
nrf_drv_gpiote_in_config_t in_config = GPIOTE_CONFIG_IN_SENSE_LOTOHI(true);
in_config.pull = NRF_GPIO_PIN_NOPULL;

err_code = nrf_drv_gpiote_in_init(PIN_IN, &in_config, in_pin_handler);
APP_ERROR_CHECK(err_code);

nrf_drv_gpiote_in_event_enable(PIN_IN, true);

Apart from this, my application also is communicating continously using ANT protocol (S210), TIMER2 is interrupting each 100us. Also, each time I press the button, the task would be to read a device via I2C. I want to do these reads at least with a frequency of 20Hz (I2C is configured to work at 400kHz)

Why is it taking (apparently, from debugger and also from scope) sooo long in start this interrupt service routine? I didn't measure it but it looks like its of the seconds (1 or 1.5 seconds). Inadmissible. Any idea why?

Thanks!!!!

Related