Tastatur-Scancodes

Gast #301151
Lesenswert?
• ▲
▼
Hi,
wer kennt sich gut mit Scancodes aus? Ich habe mit einem
Oszilloskop meine Tastatur analysiert und komme nicht auf
die entsprechenden Hex-Werte für deutsche Scan-Codes.

Laut Tabelle müsste z.B. folgendes gelten (Taste/Hex/Binär):

d = 20 = 00100000
e = 12 = 00010010

Auf dem Oszilloskop bekomme ich aber folgende Bitfolgen:
(in Klammern habe ich die originalen 10 Bit wie auf dem Oszi
gesehen vermerkt)

d = 23 = 00100011 (0110001001)
e = 24 = 00100100 (0001001001)

Wie das? Welcher Scancode ist das? Wo finde ich eine komplette
Tabelle im Netz? Wenn ich tippe, kommen jedenfalls die normalen
Zeichen einer deutschen Tastatur.

Stefan Kern.
Gast #301152
Lesenswert?
• ▲
▼
Hi,

was du da misst, SIND die Scancodes der Tastatur.
ABER: Der Tastaturcontroller im PC erhält vom Betriebssystem die
Information, welchen ZEICHENSATZ er verwenden soll.

Das heisst, erst im PC wird dem Scancode das entsprechende Zeichen
zugeordnet. Sonst könntest du ja z.B. unter Win2000/XP nicht das
Tastaturschema verändern.

Im Prinzip bedeutet das, der Tastatur ist es egal, welche Zeichen auf
ihren Tasten aufgedruckt sind, eine Schweizer Tastatur sendet genau das
gleiche wie eine amerikanische.

Ist ja auch irgendwie sinnvoll, sonst müsste jeder Tastaturhersteller
viele verschiedene Tastatur-Controller für jedes Land produzieren.

Informationen darüber bekommst du im Web wie Sand am Meer --> Google
hilft!!!

Ralf
Gast #301153
Lesenswert?
• ▲
▼
Ohne irgendwelche Ahnung davon zu haben, fällt mir aber sofort auf, dass
deine erwarteten Codes in umgekerter Reihenfolge in deinen gemessenen
drinnestecken.
Erstes Bit Wegschmeißen (vermutlich Startbit), die folgenden acht sind
dann in umgekehrter Reihenfolge deine erwarteten.

Gruß

Thomas
Gast #301154
Lesenswert?
• ▲
▼
Hallo,

bei Microsoft gibt es ein Programm, um die Tastatur-Codes zu patchen.
Damit habe ich mir (damals noch unwissend) eine Schweizer Tastatur an
"German" Ländercode angepasst (ich wusste nicht, dass die Tastatur
"Schweiz") war.

Mit dem Programm kannst Du Dir die Codes auf Tastendruck "Scannen".

Grüsse
Gast #301155
Lesenswert?
• ▲
▼
msdn lib durchsuchen sag ich nur ;)

ein OnKeyDown-event liefert dir z.b zusätzlich zum ascii zeichen auch
noch den scancode... und es gibt da auch eine nette funktion die dir
den scancode in ein ascii-zeichen umwandelt...

unter linux hab ich noch nicht allzuviel gui-gepfuscht darum weis ich
nicht wie das dort gehandelt wird...

73
Gast #301157
Lesenswert?
• ▲
▼
Hi,

danke erstmal für die Antworten. Ich hätte aber wohl besser
schreiben sollen, dass mir das mit der umgekehrten Reihenfolge
schon vorher klar war. Mein Problem war ein anderes. Ich habe
zig Tabellen durchgesehen und kam z.B.  bei e immer auf den
Hex-Scancode 0x12

z.B.:
http://www.tu-chemnitz.de/informatik/RA/educ/mop/assembler_hints/scancodes.html
http://www.torsten-horn.de/techdocs/ascii.htm

Ich habe jetzt aber gemerkt, dass meine Tastatur wohl nicht Set1
benutzt, sondern Set2 und dieses Scancode-Set hatten die von mir
gefundenen Seiten leider nicht mit aufgelistet. Die Funktionsweise
des Scan-Codes hatte ich schon verstanden, ich kam blos rechnerisch
nicht auf die Zahlen aus den von mir gefundenen Tabellen.

Hier wurde ich dann fündig:

http://www.cherry.de/deutsch/servicedownload/servicedownload_faq_id141_multiboard.htm

Stefan Kern.
Gast #301158
Lesenswert?
• ▲
▼
Googele : "BIOS Tastatur Scancodes"

Es ist keine UART Schnittstelle sind eine bidrektionale
Portschnittstelle mit Clk und Datenleitung. Portleitung werden auch für
den Kommunikationsfluss zwischen BIOS und Tastatur verwendet und können
statische Zustände annehmen ( Low = tastatur gesperrt etc)

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