Tastaturcode PS/2

OP #311527
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???
OP #311529
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ö???
Gast #311531
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)
Gast #311532
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>
#311533
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
#311535
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren