mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tastatur Simulieren mit ATmega 16


Autor: Christian Kaibel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche verzweifelt mit einem Atmel Atmega 16(in Assembler, AVR
Studio 4.07) eine Tastatur zu simulieren. Leider habe ich hierzu bisher
keine hilfreichen Tips im Inet gefunden.

WICHTIG: Ich will keine Tastatur an den ATmega hängen und diesen
bedienen, ich will einen ATmega an den Tastaturport hängen und ihn
Eingaben auf dem PC tätigen lassen.

Das PS 2 Protokol habe ich zwar, damit funktioniert es aber nicht.
Wobei ich langsam eher an ein Hardware problem denke. Wenn ich die
signale mit einem Oszi vergleiche, so sind diese fast gleich(habe
hierzu ein Oszi in die Leitung von PC und Tastatur gehängt). Habe dann
lt. den ganzen Infos zu der PS 2 Schnittstelle das Signal nachgebildet,
es stimmt bis auf leichte Zeitunterschied sehr gut. Habe als
Clocksignal ein Signal mit 40us on / 40us off generiert.
Aber sobald den Controller an den PC hänge passiert ganrichts.

Die ganzen Links hier im Forum helfen wir nicht wirklich weiter, habe
schon alle durchgeschaut.

Hat jemand schon erfolgreich eine Tastatur simuliert?

Langt es wenn ich die Scancodes an die Tastatur schicke, oder muss ich
da noch was beachten(kommen z.B. Signale vom PC zurück, die ich
beachten muss)?

Kann ich den Controller problemlos gleichzeitig parallel an der
Tastatur betreiben? Wäre praktisch, da ich keinen Tastatur Umschalter
besitze.

Welchen Schaltungsaufbau benutzt ihr? Geht ihr direkt aus den
Controllerausgängen raus oder nutzt ihr eine Treiberschaltung?


Danke schonmal für eure Hilfe.


mfg
Chris

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

parallel dazu hängen müsste gehen. Ist Tri-State.

Vor ca. 1 Jahr gab's darüber mal einen größeren Thread:

http://www.mikrocontroller.net/forum/read-1-9869.html#9911

Sebastian

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi nochmal,

gerade durch Zufall entdeckt:

http://www.atmel.com/dyn/products/app_notes.asp?fa...

AVRNOTE313

Ist zwar zum das Keyboard ansprechen, aber vielleicht bringt's auch
was...

Sebastian

Autor: Christian Kaibel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Sebastian,

die anderen Threads hab ich alle schon studiert, is leider nix
passendes dabei. Auch in der Atmel Appnote steht nicht interessantes
für mich drin.

Habs aber grad nochmal probiert und jetzt geht es. Hab wohl was mit den
Pins für Ein und Ausgang verwechselt.


Den Quellcode hab ich mal rangehängt, kannst dir ja mal ankucken.
Sollte problemlos auf alle Atmels übertragbar sein.


Noch ne Frage zum Tri-State:

Ich bin mir nicht sicher wie ich den setzen kann. Kannst du mir da grad
noch kurz ne Assembler Routine aufzeigen?


ich habe den Port als Eingang gesetzt, mit:


clr     temp
out  DDRA,temp


Ist das ausreichend?


Vielen Dank schonmal.


mfg
Chris

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

soweit ich weiß, bedeutet Tri-State, daß kein definierter Zustand
herrschen muß.

Bei I2C z.B. sind die Pins immer HIGH (über einen PullUp-Widerstand)
bis ein Gerät den Pin auf LOW zieht.

Bei Tri-State gibt es keine PullUp-Widerstände.

Die Konfiguration als Eingang sollte also ausreichend sein.

Sebastian

Autor: Christian Kaibel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Sebastian,

danke für die Hilfe, es funktioniert ganz gut mit dem Tastatur
emulieren.

Nun wollte ich eine Maus simulieren. Das Grundgerüst ist ja mit dem
Programm schon gemacht. Dachte ich mir zumindest, aber leider klappt
das garnicht. Bin am verzweifeln.

Habe mal im INet gesucht und n Projekt gefunden:

http://panda.cs.ndsu.nodak.edu/%7Eachapwes/PICmicr...

Die haben dort mit nem Pic ne Maus nachgebaut, wo man grad mit 6
Eingangen(hoch, runter, links, rechts, Taste 1 und 2) ne Maus emulieren
kann. Werde das dann einfach ansteuern.

Hoffe zwar das ich das noch hinkriege, sieht aber leider nicht danach
aus :-(


mfg
Chris

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Chris,

muß man eine PS/2-Maus nicht erst initializieren?

Eine Tastatur an den Rechner - auch am Betrieb - ranzuklemmen geht
meistens, aber selten bei 'ner Maus! Die wird wohl irgendwann
initializiert und muß dann auch wahrscheinlich eine passende Antwort an
den Rechner geben.

Sebastian

Autor: Christian Kaibel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Sebastian,

die Initialisierung macht die Maus die parallel zu meiner Schaltung
dranhängt. Zum Glück, denn sonst würde sich das ganze ziemlich
verkomplizieren.

Meine ganzen Probleme waren aber alle nur immer Timingprobleme, das
ganze funktioniert mittlerweile ganz gut mit dem PS2keyboard File das
ich oben schonmal angehängt habe.
Das einzige was man dort ändern muss is die Parity Berechnung die beim
senden von 0x00 falsch ist. Dann klappts auch mit der Simulierung einer
Maus.

Vielen Dank nochmal an dich, hast mir sehr geholfen :-)

mfg
Chris

PS: N gutes neues Jahr

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Chris,

kein Problem! Schön, daß es funktioniert! :-)

Wenn ich mal viel Zeit hab', werd' ich das ganzr auch mal probieren.
Momentan kann ich nur von einer PS/2-Tastatur einlesen.

Sebastian

Autor: kart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Allso were cool wen du mir auch mal die das Pogramm schiken würdest
womit man die Tastertur simuliert.
Wen ich das richtik verstehe kan man da also sagen f1 ka z.B. 20sekunden
drücken dan f2 3 sekunden drücken und dan 2 drücken und dan wieder 3 
drücken.
Were ganz praktisch.
Wens alerdings nit so ist könntest mir ja füleicht mal helfen sowas
zu pogramieren.

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.