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.