Ok I am using GPIO interrupt and want absolute power saving but when I set the GPIO_INTERRUPT_HIGH_ACCURACY to true it works fine but when I set GPIO_INTERRUPT_HIGH_ACCURACY to false (low accuracy with power saving) the I receive only one interrupt and then my LED stays on (like no other interrupt was detected)
What could be the possible issues in low accuracy mode?
#define GPIO_INTERRUPT_HIGH_ACCURACY true
static void gpio_init(void)
{
ret_code_t err_code;
err_code = nrf_drv_gpiote_init();
APP_ERROR_CHECK(err_code);
nrf_drv_gpiote_out_config_t out_config = GPIOTE_CONFIG_OUT_SIMPLE(false);
// err_code = nrf_drv_gpiote_out_init(PIN_OUT, &out_config);
// APP_ERROR_CHECK(err_code);
err_code = nrf_drv_gpiote_out_init(PIN_LED, &out_config);
APP_ERROR_CHECK(err_code);
err_code = nrf_drv_gpiote_out_init(PIN_BUZZER, &out_config);
APP_ERROR_CHECK(err_code);
nrf_drv_gpiote_in_config_t in_1_config = GPIOTE_CONFIG_IN_SENSE_LOTOHI(GPIO_INTERRUPT_HIGH_ACCURACY); // previous: GPIOTE_CONFIG_IN_SENSE_TOGGLE(true);
in_1_config.pull = NRF_GPIO_PIN_PULLDOWN;
err_code = nrf_drv_gpiote_in_init(PIN_INT_1, &in_1_config, int_1_pin_handler); //Creating Interrupt Handler
APP_ERROR_CHECK(err_code);
nrf_drv_gpiote_in_event_enable(PIN_INT_1, true); //Enabling Interrupt for Pin
}