Frage von DerDragonhunter, 81

Wie funktioniert ein Tastendruck (PC-Tastatur) bis das Signal am PC ankommt?

Ich würde gerne wissen, wie das funktioniert, wenn ich zb die Taste "A" drücke bis zum Moment wenn der PC merkt dass ich die Taste wieder losgelassen habe.

Also Ich denke mir das (bisher) so: Taste drücken = Stromkreis bei "A" schliessen, Koppelfeld sieht Eingang A ist AN, also gibt er den BinärCode 00100100 weiter bis die Taste losgelassen wird. Der PC weiss dass alle 8 Binärzeichen, aber woher weiss er bei 0011 das es nicht 01 ist? 0 = kein Strom und 1 = stromimpuls oder? Und der Treiber weiss, an welchem USB-Port die Tastatur ist, und wenn 00100100 kommt, macht er ein A daraus. Wenn ich aber mehrere Tasten drücke, woher weiss er, welcher Code zu was gehört?

Und was ich gerne noch wissen würde, wie funktioniert dass dann bei Sondertasen (zb Maus5 oder Pause/Play der Tastatur) oder gar bei einem Joystick, der weiss ja genau ob ich jetzt die X-Achse 1, 2 ode 5° Neige (je nachdem wie gut der Messsensor ist).

Freundliche Grüsse Jannick

PS: Wenn nötig formuliere ich meine Frage bei Unklarheiten um bzw neu PS@GuteFrage.net: Bitte Fehler beheben, als ich die Frage abschicken wollte kam Fehlermeldung das ich automatsich abgemeldet wurde, war aber noch angemeldet und konnte mich nicht anmelden ohne die Frage nochmal komplett neu zu schreiben, auch wenn ich auf "Zurück" gehe sind alle Felder wieder leer!

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Susanne88, 23

"....Der PC weiss dass alle 8 Binärzeichen, aber woher weiss er bei 0011 das es nicht 01 ist? 0 = kein Strom und 1 = stromimpuls oder? "

Beim Druck einer jeden Taste (auch beim Loslassen!) wird vom controller in der Tastatur ein der Taste entsprechender normierter code erzeugt. Dieser code wird vom PC abgefragt und z.B. als "A" dargestellt (oder auch nicht, sondern ein Kommando ausgeführt, das kannst du, wenn du dir selber ein entsprechendes Programm schreibst, beliebige Aktionen programmieren).

"Wenn ich aber mehrere Tasten drücke, woher weiss er, welcher Code zu was gehört?" Wie gesagt: Beim Druck einer jeden Taste wird vom controller in der Tastatur ein der Taste entsprechender unterschiedlicher code erzeugt.

"wie funktioniert dass dann bei Sondertasen" Auch durch "Sondertasten" (du meinst wohl die, welche keinen Buchstaben oder Zahlen sind) wird genauso wie bei "normalen" Tasten vom Tastaturcontroller ein code erzeugt.

Beim einem joystick oder maus ist es ähnlich, auch da werden von den Geräte genormte codes erzeugt.

Soweit ich dich verstehe, willst du ein eigenes Eingabegerät benutzen / entwerfen. Du hast im Prinzip zwei Möglichkeiten: 1. Du erzeugst mit deinem Gerät codes (z. B. durch einen Microcontroller), die du dann in einem Programm auswerten musst, oder 2. dein Gerät ist passiv (analog, etwa Potentiometer), dann musst du mit einem eigenen Programm den Zustand abfragen und darauf reagieren. Ist nicht trivial!

Kommentar von DerDragonhunter ,

Ok das hat mir weitergeholfen, aber was mich aus Neugier noch interessieren würde:

wie unterscheidet der PC, ob der ankommende Code 000111 oder 01 ist? Weil 0=kein Strom und 1=Strom. Und:

Verstehe ich folgendes richtig: Wenn ich A gedrückt halte, sendet er 1x den code für A unten bis ich loslasse und nicht wiederholt oder?

Kommentar von Susanne88 ,

wie unterscheidet der PC: Es wird von der Tastatur immer ein code mit gleicher Länge erzeugt: 8bit lang (entspricht 1 Byte,entspricht wiederum 2 EXP 8, somit 256 möglichen Kombinationen) d.h. 8 Stellen, wobei diese Stellen "0" oder "1" sind. Der erzeugte code, scancode genant, wird in den Tatstaturspeicher geschrieben, wo er dann von PC ausgelesen werden kann, und zwar immer eben 8 Stellen (Byte-)weise). "0" und "1" muss aber nicht heißen, dass bei "0" kein Strom fließt, bei "1" aber schon - das ist DSefinitionssache, es kann auch umgedreht sein (sog. negative Logik).

"Wenn ich A gedrückt halte, sendet er 1x den code für A unten bis ich loslasse und nicht wiederholt oder?" Ja. Die Wiederholungen die du z.B. in einem Textprogramm siehst, werden vom PC gemacht und kannst du auch ausschalten. Die Tastatur erzeugt nur den scancode, wie dieser scancode umgesetzt wird, also etwa in ein "A", macht wiederum der PC. Wenn du z. B. einen anderen Ländercode hast, erscheint bei einer "arabischen" PC ein anderes Zeichen. Die Tastaur ist aber völlig identisch mit einer deutschen, außer den Tastenbeschriftungen. Der scancode der linken mittleren Taste (bei den deutschen"A") ist somit bei allen Tastaturen gleich, aber wird je nach Ländercode in arabisch, griechisch, japanisch, chinesische...Zeichen vom PC umgesetzt. Streng genommen "sendet" die Tastatur auch nicht, sondern der scancode wird vom PC abgeholt. Abgesehen davon wird das Drücken einer Taste nicht einfach dadurch festgestellt, dass sich für jede Taste ein Kontakt schließt und genau dieser Kontakt nur für diese Taste da ist, sondern über eine Matrix abgefragt wird. Du siehst, dass allein über eine simple Tastatur sich leicht ein ganzes Buch füllen lassen würde.

Oberflächlich beschrieben z. B. bei https://de.wikipedia.org/wiki/Tastatur

Antwort
von DanBam, 37

Kurz und einfach: Bei einem Tastendruck werden zwei getrennte Leiter miteinander verbunden und Strom fließt. Dieses Stromsignal wird im Computer mithilfe von Treibern und Programme im Prozessor verarbeitet und an den Bildschirm über die Grafikkarte zur Ausgabe weitergeleitet. 

Kommentar von DerDragonhunter ,

Was ich suche geht mehr in die Materie, mich interessiert eigentlich der Moment, wo der Stromkreis in das Koppelfeld gelangt, verarbeitet wird und was dann an den PC gesendet wird. Ich möchte ein eigenes Eingabegerät konzipieren, aber beim Übergang von der Eingabe zum Leiter (welcher zum Konverter und dieser wieder zum PC führt) ist ein Gelenk dazwischen, und ich muss wissen wie ich das Problem dort lösen kann, ohne die Demontierbarkeit oder 361°+ Drehbarkeit zu beeinträchtigen. Also brauche Ich Kontaktstellen. Wie viele? 2 für + und -? oder 4 für Strom und Signal je + und -? Das ist erst der Anfang, und mit dem Prinzip der Tastatur hätte ich eigentlich alle Fragen beantworten können die sich mir noch in den Weg stellen... Ausserdem, ich plane mehr als 1x dieses Eingabegerät anzuschliessen, und wenn beide Geräte dieselben Aktionen auslösen, wäre das schlecht. es muss getrennt sein.

Kommentar von DanBam ,

Was willst Du mit einem mechanischen Keyboard, wenn in modernsten Labore, Büros vieles mit Touchscreens, Rubberdomes usw. erledigt wird? 

Kommentar von DerDragonhunter ,

Kein Keyboard :) ein Eingabegerät, nach meinem Eigenen Entwurf (den ich noch am Erstellen bin). Aber ich habe mir gedacht, ich könnte es gleich auch direkt PC-Kompatibel konzipieren

Antwort
von LordHell, 28

https://de.wikipedia.org/wiki/Tastatur sollte dir weiterhelfen

Kommentar von DerDragonhunter ,

Danke dort war ich auch schon... Es hat mir zwar etwas weitergeholfen, aber ich hoffte auf andere Information (siehe bitte Kommentar von mir zu DanBam's Antwort). Die Sache ist ausserdem die, dass ich meine Lösung / mein Plan / Vorhaben an den Gegebenheiten anpasse, und hier wollte ich diese zum Teil herausfinden

Antwort
von noname68, 46

im grunde ist alles am pc mit tasten und sensoren nicht viel anders als bei jedem einfach lichtschalter, das simple binäre system: strom fließt oder nicht, 1 oder 0.

Kommentar von DerDragonhunter ,

Klar und wenn ich Licht An Licht Aus mache war das 11111000 oder 10000000 oder 11100000... und all meine anderen Fragen?
und was ist mit dem Koppelfeld? und dem Joystick? dort ist dann die Stromstärke wie weit der Joystick geneigt ist? oder einfach 00000001 bis 0111111 für 1° bis 45°?

Ich möchte mir sozusagen was eigenes bauen (lassen) für den PC und brauche dazu dieses Wissen

Kommentar von noname68 ,

warum zerbrichst du dir über solche banalitäten den kopf? willst du die pc-technik revolutionieren und alles neu erfinden? würdest du z.b. einen motor zerlegen, nur um zu sehen, wie der verbrennungsablauf aussieht?

mir ist es egal, ob ich beim schreiben dieses kommentars auf meiner tastatur nullen oder einsen oder millionen davon in welcher reihenfolge auch immer "produziere". wichtig ist nur, was dabei herauskommt, vielen dank lieber pc!

Kommentar von DerDragonhunter ,

Nein, und wegem Motor: nein ich zerlege den Motor nicht, ich FRAGE nach. zb Google oder hier. Und nebenbei: wenn du die Antwort nicht weisst und nur so einen Dummen Spruch bringen kannst, antworte doch bitte nicht. Danke

Keine passende Antwort gefunden?

Fragen Sie die Community