Es bestünde noch die Möglichkeit die schalter per Pin Change Interrupt abzufragen.
Aber nicht alle ATMEL Controller stellen den zur Verfügung.
Bei jedem Zustandswechsel an einem der beteiligten Pins wird dabei ein Interrupt ausgelöst.
Ob von L->H oder von H->L musst Du allerdings per Software rauskriegen.

Bei einigen Controllern laufen mehrere Pins auf einen Interrupt Vektor.
Das bedeutet, Du musst auch konkret den Pin per Software rauskriegen, der das Interrupt Ereignis ausgelöst hat.

Abe ansonsten wäre Pin Change sicher eine gute Lösung.