All,
So, I have a 4x4 button Matrix, with a FALLING interrupt set on each of the column pins. When the ISR fires, it:
- disables the interrupts
- performs a full key-scan of the matrix
- puts any necessary objects on a queue for subsequent processing elsewhere in the code
- re-enables the interrupts.
My problem is, I need the program to carry on processing for the duration of the button press, however, it isn't. Having investigated, I believe this to be because the key-scan of the matrix is activating the FALLING trigger again, setting the interrupt pending flag, which then gets immediately picked up when the interrupts are re-enabled at the end of the ISR, consequently the ISR is called repeatedly locking up the processor until the button is released.
So, how do I clear the interrupt pending flags on the Due. I have seen various examples for the other chip based Arduino cards, but this seems illusive. Can anyone help?!
Many thanks, Chris.