Forum: Mikrocontroller und Digitale Elektronik Tastaturcode PS/2


von Ludwig W. (lordludwig)


Lesenswert?

Also wenn ich das richtig verstanden habe wird bei einem tastendruck
über die PS/2 Schnittstele der tastencode so lange übertragen, wie die
taste gedrückt ist, richtig???

Aber was passiert wenn man jetzt STRG + irgend ne andere taste
drückt??? Werden die beiden tastencodes abwechselnd ausgegeben???

von crazy horse (Gast)


Lesenswert?


von Ludwig W. (lordludwig)


Lesenswert?

hmm ich knn da nix zu meiner frage finden.

Meine frage ist was passiert wenn ich z.B. strg+G gleichzeitig
drücke???

Ich denke wenn eine Taste gedrückt bleibt wird der tastencode immer
wieder gesendet(wie oft kann man ja per command einstellen), ist das
richtig so???

Auf was bezog sich das nö???

von Εrnst B. (ernst)


Lesenswert?

Tastenwiderholung ist reine Betriebssystemsache, da macht die Tastatur
nix dran.

Tastatur schickt einmal beim drücken, und nochmal beim loslassen der
Taste.

Bei wikipedia gibts da nen Artikel zu, heisst treffenderweise
"Tastatur"...

http://de.wikipedia.org/wiki/Tastatur

/Ernst

von Ivan der Schrecklichste (Gast)


Lesenswert?

>>Tastenwiderholung ist reine Betriebssystemsache, da macht die
>>Tastatur nix dran.

>>Tastatur schickt einmal beim drücken, und nochmal beim loslassen der
>>Taste.

Also das ist definitiv falsch. Nimm mal ne Tastatur, versorg sie mit
5V, häng ein Oszi an Data bzw. Clk und Du wirst sehen, daß beide
Signale von der Tastatur erzeugt werden und wiederholt werden, solange
die Taste gedrückt ist. (ich glaube 10 mal pro Sekunde)

von Andreas Jäger (Gast)


Lesenswert?

> hmm ich knn da nix zu meiner frage finden.

> Meine frage ist was passiert wenn ich z.B. strg+G gleichzeitig
> drücke???

Aber das ist doch dort (http://www.beyondlogic.org/keyboard/keybrd.htm)
genau beschrieben - in den ersten beiden Absätzen nach "PC Keyboard
Theory".

Wenn du <strg> drückst wird der scan code für <strg> gesendet. Wenn die
Taste gedrückt bleibt, wird der Code solange wiederholt, bis die Taste
losgelassen wird oder eine andere Taste gedrückt wird. Für <strg><G>
wirst du also etwas wie

 14 14 .. 14 12 12 .. 12 34 34 .. 34 ..  bekommen.

14 = scan code <strg>
12 = scan code <shift>
34 = scan code <e>

von Kai R. (kairiek)


Lesenswert?

Die Wiederholungsfunktion ist nicht zwingend in jeder Tastatur vorhanden
bzw. aktiviert.
Ich habe mal eine Tastatur an nen PIC angeschlossen und die Zeichen
dann an einen 24Nadeldrucker ausgegeben. Da war es so:
Die Tastatur sendet den Make- und den Break-Code (Drücken / Loslassen)
der Taste. Diese beiden Codes müssen entsprechend verarbeitet werden.
Wenn du nun Strg+Alt+... drückst erzeugt deine Tastatur die Make-Codes
die du dir merken mußt. So kannst du dann feststellen welche
Kombination gerade gedrückt wird.

MFG

Kai

von Kai R. (kairiek)


Angehängte Dateien:

Lesenswert?

Ich habe dir mal ein paar Infos aus meiner Datenblätter-Sammlung
angehängt...

von Εrnst B. (ernst)


Lesenswert?

Da schau her... einmal auf Wikipedia verlassen und schon daneben
gelangt...

Wenigstens stimmte das mit den Key-Release Codes, insofern würde auch
eine Auswertung darüber funktionieren:

KeyPress "Ctrl" -> set bit 0
KeyPress "Ctrl" -> set bit 0
KeyPress "Shift" -> set bit 1
KeyRelease "Ctrl" -> clear bit 0
KeyPress "Shift" -> set bit 1
KeyPress "Ctrl" -> set bit 0
KeyPress "G" ->check if bit0+1 set, jump to CTRL-SHIFT-G handler...

Die mehrfach wiederholten KeyPresses kann man dann einfach ignorieren.


/Ernst

von Ludwig W. (lordludwig)


Lesenswert?

danke jetzt is mir alles klar!!!

von Ludwig W. (lordludwig)


Lesenswert?

desonderer danke an Kai Riek für die zip mit den Massen an Infos!!!

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.