Autor Thema: Keyboardcorntroller  (Gelesen 8092 mal)

UbuntuPro

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« am: 29. September 2009, 14:55 »
Hallo Leute!

Ich bin neu Hier und ich habe gleich mal eine Frage. Es gibt ja ein super Tutorial in Lowlevel über Keyboardcontroller, aber ich brauche eine genaue Anleitung wie ich mit assembler und c++ oder c es so schreiben kann, sodas ich jedes Zeichen eingeben kann und dann in einer Variable gespeichert wird in c/c++.

Bitte um Hilfe :)

MFG

rizor

  • Beiträge: 521
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 29. September 2009, 15:39 »
Wie meinst du das?
Willst du einfach nur den Keycode speichern oder möchtest du das ganze gleich durch eine Keymap jagen?

Hier ist ein Tut, ist zwar nicht das beste, es gibt dir aber ein paar Einblicke:
http://www.osdever.net/bkerndev/Docs/keyboard.htm

EDIT:
Bitte verschieben.
Sieht mir mehr nach Coding aus.
Programmiertechnik:
Vermeide in Assembler zu programmieren wann immer es geht.

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 29. September 2009, 15:48 »
Wie du die Tasten bekommst (bzw. die Scancodes), steht im Wikiartikel. Die Weiterverarbeitung in C/C++ solltest du selber können, wenn du ein OS drin schreiben willst.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

UbuntuPro

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 20. October 2009, 18:59 »
ach kommt schon  :cry:
könnt ihr mir nicht sagen, wie ich des von assembler in c in eine variable speichern kann.
Das mit assambler kann ich ja etz aber nicht die umschwenkung zu c

bitte  :cry:

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 20. October 2009, 19:35 »
Ah, dein Problem liegt nicht bei der Ansteuerung der Hardware, sondern mehr, wie man das in C umsetzt? Dann habe ich deine Frage falsch verstanden.

Alles, was du brauchst, sind ja im Prinzip die inb/outb-Funktionen in C, um auf die Tastaturports zuzugreifen. Schau dir mal den Artikel über Inline-Assembler an. inb ist sogar eins von den Beispielen mit Code dort, outb geht analog.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

UbuntuPro

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 21. October 2009, 15:58 »
danke :)

und wie speichere ich den Wert der von der Tastertur zum PC kommt in einer variable?

rizor

  • Beiträge: 521
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 21. October 2009, 16:29 »
Du liest den keycode doch mit outb aus.
Der wert der zurück kommt ist der keycode (vereinfacht gesagt).
Und wie man das speichert weißt du, oder?

Wenn nicht, solltest du dir vllt erst mal ein paar Tutorials zu C/C++ durchlesen.
Programmiertechnik:
Vermeide in Assembler zu programmieren wann immer es geht.

Cool-Andy

  • Gast
Gespeichert
« Antwort #7 am: 21. October 2009, 19:02 »
Schau mal hier: http://lowlevel.brainsware.org/forum/index.php?topic=2306.0

Da wollte ich auch ein Tastaturtreiber schreiben (auch wenn der Titel anders ist), was ich dann auch hinbekommen habe. Ich finde da stehen ein paar ganz brauchbare Codes drin.

Ich hoffe ich helfe dir damit!  :wink:

pgahlen

  • Gast
Gespeichert
« Antwort #8 am: 23. June 2010, 15:11 »
Hm ich bin auch gerade dabei einen Keyboardtreiber zu schreiben. Ich habe mich sehr stark an das Tutorial gehalten. Zusätzlich habe ich noch ein kprintf eingebaut, das mir den Scancode ausgibt.

Nachdem die Tastatur initialisiert wurde gibt er einen Scancode 250 aus.
Wenn ich nun eine Taste drücke sollte eigentlich ein anderer Scancode darunter kommen, dieser erscheint aber nicht.

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #9 am: 23. June 2010, 15:22 »
Eventuell hast du vergessen einen EOI an die PIC zu senden, siehe auch den entsprechenden Artikel im Wiki.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

pgahlen

  • Gast
Gespeichert
« Antwort #10 am: 23. June 2010, 18:03 »
Oh, danke
Mir ist gerade aufgefallen das ich mich noch gar nicht mit dem PIC auseinandergesetzt habe. Das werde ich jetzt erst mal als erstes tun

 

Einloggen