Die Abfrage darf man nicht in der ISR machen, das ganze Port in eine Variable schieben und dann in der Main-Schleife abarbeiten. Interrupts werden nicht unterbrochen sondern abgearbeitet, der nächste wartet wenn man ihn nicht manuell löscht.