Why is the interrupt queued?
Posted: Wed Jul 27, 2022 3:44 am
I'm using the pyboard and my interrupt comes in every 3.3ms.
The interrupt source is connected to a GPIO input.
The interrupt service route is plain.
loop_test1 is a GPIO output connected to an oscilloscope. By watching the loop_test1, interrupt latency and ISR running time can be measured.
But to my surprise, the captured waveform does not align the interrupt event (purple line) to the loop_test1 (yellow line), except for the very first one. The interrupt events seem to be queued and responsed in batch.
How could it be like this?
The interrupt source is connected to a GPIO input.
Code: Select all
pin_int.irq(trigger=Pin.IRQ_RISING, handler=tick)
Code: Select all
def tick(int_pin):
loop_test1.high()
# blahblahblah
loop_test1.low()
But to my surprise, the captured waveform does not align the interrupt event (purple line) to the loop_test1 (yellow line), except for the very first one. The interrupt events seem to be queued and responsed in batch.
How could it be like this?