In een boek over de pic32 (Programming 32-bit Microcontrollers in C: Exploring the PIC32 (Embedded Technology)) staat dat je bij het gebruiken van de change notification module zelf verantwoordelijk zijt voor het nagaan van welke pin de interupt veroorzaakte in de interupt handler.

Echter hoe gaat dit? Dat vindt ik nergens moet je de waarden van alle pinnen bijhouden in globale variabele of zijn er speciale registers die geset of gereset kunnen worden indien er een verandering optreden aan de pinnen?

Groeten.

Yup. Zelf bijhouden wat de vorige state was. Een XOR over huidige en vorige state geeft de gewijzigde pins. Opletten dat je de poort maar 1 keer uitleest in je ISR, en dat je de ISR zo kort mogelijk houdt. Ik weet niet precies wat de pic32 doet als er tussen de port-read en de interrupt-clear een pinnetje wisselt.