Ich bin ein Koffer
"maske" muss natürlich den Postb-Bits der Tasten entsprechen, also
KEY_Check (0 , 0x10);
KEY_Check (1 , 0x20);
KEY_Check (2 , 0x40);
KEY_Check (3 , 0x80);
(PortB & maske ) ergibt ein Byte, das nur aus dem fraglichen Bit aus PortB besteht.
if ( matrix[index] ^= (PortB & maske ) ) ist ja EXCLUSIV ODER.
Das ergebnis ist also nur != 0, wenn das gefragte bit in Matrix und PortB verschieden ist
*schäm*
Lesezeichen