Forum: Projekte & Code STM32F4 Verwendung Tastendruck Ps2 Tastatur


von Julia S. (Firma: keine) (julia1010)


Lesenswert?

Ich versuche gerade ein kleines Spiel mit anderen Leuten zu 
programmieren. Es werden auf einer PS2 Tastatur Tasten gedrückt, diese 
lösen bei jedem Druck einen Interrupt aus und wandeln den Scancode in 
Ascii um. Dieser Teil funktioniert.
Das Spiel ist ein Hürdenspiel, also eine Tastenkombination von l/r 
laufen und s zum springen sollen das Spiel simulieren.
Meine Versuche die eingelesene Taste in einer Variablen abzuspeichern 
und diese dann zum vergleichen heranzuziehen (egal ob scancode oder 
ascii) sind gescheitert.
und mittlerweile frage ich mich eigentlich nur noch wie bekomme ich 
meine gedrückte Taste in die Spielefunktion???
Ich weiss das klingt echt banal, aber ich bin über meine Versuche etwas 
matschig geworden ;)
Hat irgendjemand eine Idee?

von Ale (Gast)


Lesenswert?

Macht ein Diagramm wie soll dein Spiel funktionieren, wann erwartes du 
von dem Benutzer Eingabe ? was soll dann passieren ? Wie kommst du dahin 
?. Irgendwo findest du dann wo die abfrage der Tasten reinkommen soll.

von Uwe B. (derexponent)


Lesenswert?

>Es werden auf einer PS2 Tastatur Tasten gedrückt, diese
>lösen bei jedem Druck einen Interrupt aus und wandeln den Scancode in
>Ascii um. Dieser Teil funktioniert.

wenn du das geschafft hast, ist doch ein vergleich auf eine Taste
kein Problem :
1
uint8_t ascii;
2
3
while(1) {
4
  ascii=getAsciiKey(); // << das hast du schon
5
  if(ascii=='a') {
6
    // Taste-A wurde gedrückt
7
    laufeLinks();
8
  }
9
  else if(ascii=='d') {
10
    // Taste-D wurde gedrückt
11
    laufeRechts();
12
  }
13
  else if(ascii=='s') {
14
    // Taste-S wurde gedrückt
15
    springe();
16
  }
17
}


oder verstehe ich da was falsch ?


Gruss Uwe

von Julia S. (Firma: keine) (julia1010)


Lesenswert?

Ich hab´s anderes gelöst, aber trotzdem danke. mein Problem war, dass 
aus welchem Grund auch immer meine Spielfunktion nicht auf die 
getascii() zugreifen hat können. Ich hab jetzt einfach in meiner 
getascii ein Bit auf einem Pin gesetzt, wenn l gedrückt wird und auf 
einem anderen bei r. In der Spielfunktion setzte ich es wieder zurück. 
Schon schlimm, wenn man für eine so simple Lösung 6 Stunden verscheisst.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.