How are multiple interrupts on different pins handled?

arjen1
Posts: 16
Joined: Sun Aug 06, 2023 4:48 pm

How are multiple interrupts on different pins handled?

Postby arjen1 » Sun Apr 28, 2024 2:07 pm

Dear forum.

Got two solar strings and for each string a separate power meter. The Power meter(s) output a pulse depending on the solar power. More Power --> faster the pulse occurs, so Tpuls gets shorter whenever there is more sunshine.
I tested stuff with one power meter output connected to a ESP8266 GPIO pin, defined that pin as an interrupt pin and wrote a simple program to count the number of pulses it receives and hence the equivalent power it gets from the solar panel. To get an idea how often a pulse is triggered: Less then once a second, maybe twice a second at most.

I could simply copy this routine, write a 2nd ISR interrupt service routine and connect the 2nd power meter to another pin of the ESP8266.

Here's the question:

I read that while in ISR, the ESP8266 does not register or handle other interrupts. Does that mean that if the 1st power meter triggers its ISR and the 2nd one triggers another while the program is still in the 1st ISR, then that 2nd pulse is not registered at all or just put in a queue so that it triggers the 2nd ISR after the 1st one is handled? I do not want to miss out on any pulse. Timing is not an issue in this case, I just want it to register all pulses within a fair amount of time, say a few msecs.

Could not find any info in the documentation regarding multiple ISR routines.

Thanks.

liaifat85
Posts: 200
Joined: Wed Dec 06, 2023 2:46 pm

Re: How are multiple interrupts on different pins handled?

Postby liaifat85 » Sun Apr 28, 2024 2:39 pm

If the first power meter triggers its ISR and then the second power meter triggers another ISR while the first ISR is still executing, the second ISR will not be immediately serviced. Instead, it will be put in a queue and handled after the first ISR completes.

arjen1
Posts: 16
Joined: Sun Aug 06, 2023 4:48 pm

Re: How are multiple interrupts on different pins handled?

Postby arjen1 » Sun Apr 28, 2024 2:49 pm

Thanks! Exactly the answer I was hoping for. Kinda expected it too. Is there any documentation about that?

Who is online

Users browsing this forum: No registered users and 21 guests