Forum: Mikrocontroller und Digitale Elektronik Tastatur-Scancodes


von Stefan Kern (Gast)


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.

von Ralf (Gast)


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

von TOM (Gast)


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

von Rumpelstelz (Gast)


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

von Hans (Gast)


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

von Jens D. (Gast)


Lesenswert?

Hallo, schau dir das hier mal an:
http://www.mikrocontroller.net/forum/read-2-278644.html

Deine Taste e hat den Scancode: 0x23,'e' macht:
00100011 du hattest
00100011 passt also irgendwie :D

Es gibt noch mehrere Funktionen einer Tastatur, du kannst ihr zB.
Kommandos senden, und die Tastatur sendet unterschiedliche Scancodes
(Key Down und Key Up)

Gruss

von Stefan Kern (Gast)


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.

von Thomas S (Gast)


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)

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.