Due Interrupt flag clearing (I think!)

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.