Als IRQ-Quelle müsste man eigentlich die Ports eines Microcontrollers so programmieren können, dass sie einen falling-edge-IRQ auslösen, also ganz ohne Zusatzhardware. Oder können das die 8-bit AVRs nicht?
Wenn der AVR hinreichend neu ist (zB mega48/88/168, mega164/324/644, aber nicht mega16/32) kann man auf allen (kleinere Chips) bis einigen wenigen (mega1281 =( ) I/O-Pins Pin-Change-Interrupts aktivieren - die triggern allerdings leider immer auf beide Flanken und um herauszufinden welcher Pin eines Ports den IRQ ausgelöst hat muss man den aktuellen Zustand mit einem gespeicherten vergleichen.
Für die Tastenmatrix-Abfrage sollte das allerdings kein Problem darstellen, auch wenn die Worst-Case-Interruptlatenzzeit beim AVR IIRC 6 Takte beträgt.