GPIO isr service
Posted: Sun Nov 17, 2019 5:13 pm
I am trying to understand how to add interrupt handler for gpio pin changes. I'm using the gpio sample code that has this snippet to do it:
I assume in a more complex program that has other libraries and code already in place, the gpio_install_isr_service(ESP_INTR_FLAG_DEFAULT); call may have been made by some code outside my control. Is there any harm calling it again, in my code? If so, how to check if the call has been made? Thanks.
Code: Select all
//install gpio isr service
gpio_install_isr_service(ESP_INTR_FLAG_DEFAULT);
//hook isr handler for specific gpio pin
gpio_isr_handler_add(GPIO_INPUT_IO_0, gpio_isr_handler, (void*) GPIO_INPUT_IO_0);
//hook isr handler for specific gpio pin
gpio_isr_handler_add(GPIO_INPUT_IO_1, gpio_isr_handler, (void*) GPIO_INPUT_IO_1);
//remove isr handler for gpio number.
gpio_isr_handler_remove(GPIO_INPUT_IO_0);
//hook isr handler for specific gpio pin again
gpio_isr_handler_add(GPIO_INPUT_IO_0, gpio_isr_handler, (void*) GPIO_INPUT_IO_0);