Content originally posted in LPCWare by jdupre on Thu Sep 17 10:54:14 MST 2015
I'm not understanding how the interrupt processing is supposed to work with the Group Interrupt peripheral. (I'm using the LPC15xx) :
I have 4 GPIO push-button inputs, normally high.
I have set up the Group Interrupt controller with the inputs active low, edge triggered, and ORed.
When a button is pressed, the IRQ is triggered (and sometimes multiple times due to switch bounce). When it is released, the IRQ is not triggered. So far so good.
However, if a button is pressed and held down, and then another button is pressed, the interrupt does not fire for the second button. Why is this? The group interrupt is configured to OR the inputs so that any input going low should fire the interrupt.
I then change the configuration so the inputs are active high. I expected the interrupt to fire when a button was released (a transition from low to high). However, the interrupt is triggered only once at startup. After that, pressing of any button does nothing.
It appears that any input being active "locks" the group interrupt mechanism. Is that the intended behavior?
- Joe