mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tastatur-Scancodes


Autor: Stefan Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: TOM (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rumpelstelz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jens D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/a...
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/servi...

Stefan Kern.

Autor: Thomas S (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.