Anyway, I think you need to read some documentation, like THIS. Otherwise, you need to make some example and/or describe what kind of interrupt you need to manage (e.g. source? event type and duration?).
Hi. Thank you for the reply.
External interrupts are caused by external events, like a pin changes from HIGH to LOW.
In my project I need to monitor several of these events.
isn't the priority based on which interrupt occurs first? would you expect a "higher priority" interrupt to interrupt an interrupt in progress (do you really have such a need)?
interrupts should be written to do a little as necessary and rely on the foreground code to do the work requested by the interrupt unless some response must be performed quickly.
Yep, that's the common situation. I just mean except for particular purpose, there's no need to specify "external".
Ok, but I still don't get the point. Did you read the page I linked you before, describing interrupts on ESP32?
Even if it depends on the kind of interrupt handling you have in your mind, you could just easily implement such kind of behavior using a few global (volatile) variables as semaphores.
As an example, if an interrupt has higher priority, meaning any other must be "masked" away, just set the semaphore to "true" while serving the interrupt, so any other subordinate interrupt routine can just avoid to execute the ISR code with a simple "if (semaphore) return;" as its first statement. Can't be more specific without a detailed desired interrupt handling description.
If you decide to use the pin-change interrupt, when you read the pins you are interested in, you set the priority your self. The order of reading the pins to find the first changed pin will be your priority order.