Super Nintendo Controller auslesen.

Hallo liebe Gemeinde,

ich bin gerade dabei einen Supernintendo Controller auszulesen (SNES).
Das ganze mach ich über diese Seite:
http://www.tacticalcode.de/2013/06/snespaduino-super-nintendo-gamepad-fur-arduino.html

Ich will eine 8x8 LED Matrix ansteuern, und je nach Tastendruck anzeigen, welche Taste gerade gedrückt wird.
Also wenn Taste A gedrückt wird, soll A erleuchten, bei B soll B erleuchten etc.
Das ganze klappt auch schon ganz gut, jedoch bekomm ich es nicht hin auszulesen, dass ich keine Taste mehr drücke.

Das Ganze klappt soweit ich weiß software seriell, der Controller hat ein Schieberegister, also wird er mit 5V, 0V, Latch, Clock, Data verbunden.

Mein Problem wird es sein, dass der Controller einfach nichts sendet, sobald keine Taste mehr gedrückt wird. Jedoch kann ich keine zeitliche Abfrage machen, welches mir die LED Matrix zurück setzt.
Der Controller muss doch, nachdem alle Tasten losgelassen wurden noch einmal den befehl "0x00" senden, sonst würde doch auch in jedem Spiel die Personen z.b. Weiterlaufen, Springen etc.

Leider krieg ichs echt einfach nicht hin, auszulesen wann alles 0 ist.

Dies ist meine Loop()

void loop() {
btns = pad.getButtons();
if(btns & BTN_A)
{
writeArduinoOnMatrixA(); //es wird A ausgegeben
}
if(btns & BTN_B)
{
writeArduinoOnMatrixB(); //es wird B ausgegeben
}
if(btns & BTN_Y)
{
writeArduinoOnMatrixY(); //es wird Y ausgegeben
}
if(btns & BTN_X)
{
writeArduinoOnMatrixX(); //es wird X ausgegeben
}
delay(100);
}

Hier wird jedesmal abgefragt, welche Taste gedrückt wird.
Drück ich A, leuchtet auf der Matrix ein A, lass ich die Taste los leuchtet aber immer noch ein A.

Laut .h datei ist BTN_Y etc so definiert:

#define BTN_B 0x01
#define BTN_Y 0x02
#define BTN_A 0x100
#define BTN_X 0x200

Dort ist aber nichts als 0x00 definiert.

Ich bin gerade echt am verzweifeln :S
Hat irgendjemand eine Ahnung wie ich bei soetwas noch einmal auslesen kann, ob alle tasten losgelassen wurden?

Danke im Vorraus.

Okay, hat sich erledigt.

Habe nun softwareseitig manuell das Schieberegister abefragt, habe gemessen dass der Data Pin im ruhemodus (keine Taste gedrückt) auf 5V ist also High.
Das Schieberegister schieb ich 12x also sind es 12Bits und nun frag ich einfach ab ob das Schieberegister 0xFFF ausgibt. Sollte es 0xFFF ausgeben setz ich einfach meine Matrix zurück.

Trotzdem Danke =)