SENDSCANKBD heißt der Befehl der das möglich macht. Du mußt beachten das Du mit den PS2 Scanncodes arbeiten mußt. Also um eine Tastenzeichen zu Senden mußt Du 3 Bytes Senden : 1 Byte Makecode und 2 Byte Breakcode.
Hallo Leute,
Ich will mit einem ATMega8 eine PS2 Tastatur imitieren, damit mein Mega8 zb einen Text schreiben kann. Leider finde ich nur Informationen zum Anschluss einer Tastatur am Mega aber nicht zum imitieren.
Das ganze dürfte eigentlich ja gar nicht so schwer sein, da Bascom offenstichtlich PS2 unterstützt.
Hat von euch, irgendjemand schon einmal so etwas gemacht?
Vielen Dank im voraus!
Douser
SENDSCANKBD heißt der Befehl der das möglich macht. Du mußt beachten das Du mit den PS2 Scanncodes arbeiten mußt. Also um eine Tastenzeichen zu Senden mußt Du 3 Bytes Senden : 1 Byte Makecode und 2 Byte Breakcode.
In Bascome Hilfe habe ich diesen Code gefunden, aber zur Zeile "Config Atemu =..." gib es die Fehlermeldung "Library file not found"
Code:$lib "mcsbyteint.lbx" ' use optional lib since we use only bytes 'configure PS2 AT pins Enable Interrupts ' you need to turn on interrupts yourself since an INT is used Config Atemu = Int1 , Data = Pind.3 , Clock = Pinb.0 ' ^------------------------ used interrupt ' ^----------- pin connected to DATA ' ^-- pin connected to clock 'Note that the DATA must be connected to the used interrupt pin Waitms 500 ' optional delay 'rcall _AT_KBD_INIT Print "Press t for test, and set focus to the editor window" Dim Key2 As Byte , Key As Byte Do Key2 = Waitkey() ' get key from terminal Select Case Key2 Case "t" : Waitms 1500 Sendscankbd Mark ' send a scan code Case Else End Select Loop Print Hex(key) Mark: ' send mark Data 12 , &H3A , &HF0 , &H3A , &H1C , &HF0 , &H1C , &H2D , &HF0 , &H2D , &H42 , &HF0 , &H42 ' ^ send 12 bytes ' m a r k
The PS2 Keyboard and mouse emulator needs an additional commercial addon library.
Also wirds doch nicht ganz so einfach wenn man sich diese LIB nicht noch dazukauft.
http://www.mcselec.com/index.php?pag...pshop&Itemid=1
Weißt du vielleicht, wo man diese Lib noch bekommen kann?
Kaufen, anders wohl auf legalen Wege nicht
MfG Christopher \/
Ja wenn Du das mit der Lib machen willst wirst Du die kaufen müssen.
oder
1. das Senden selber Programmieren ( das PS2-Protokoll ist nicht so schwer)
2. in C bzw. Assembler wirds so was schon frei und fertig geben
3. im Netz suchen ob es schon mal einer ohne die Lib mit Bascom geproggt hat
MfG RoFo
Das problem beim selber schreiben ist nur, dass ich so etwas noch nie gemacht habe! Werde mich noch a bissal umsehen und versuchen, es selber zu Programmieren
Danke für eure Unterstützung
Morgen,
Wollte mir gerade bei MCS die Lib kaufen, aber die haben irgendwelche Probleme mit ihrem Server. Da kommt immer die Meldung "Server ist im daugenblick zu beschäftigt!" und das ganze seit gestern Abend.
Jatzt muss ich das Protokoll doch selber schereiben, habe aber keine Ahnung davon. Meine Suche im Netz war auch nicht wirklich erfolgreich.
Hoffe einer von euch kann mir dabei helfen.
Ich will eigenlich nur dem PC die Standart Tasten sagen, die auf jeder Tastatur vorkommen.
http://de.wikipedia.org/wiki/PS/2-Schnittstelle
Die weiterführenden Links sind auch nicht schlecht
EDIT:
ich habe a mal schnell was zusammengeschrieben
Code:$regfile = "m32def.dat" $crystal = 16000000 Declare Sub Senden Declare Sub Senden0 Declare Sub Senden1 Dim X As Byte Dim Y As Byte Dim Z As Byte Dim Send As Byte Dim Parity As Byte Daten Alias Pina.0 Datenport Alias Ddra.0 Clock Alias Pina.1 Clockport Alias Ddra.1 For Y = 0 To 29 ' sendet "hallo AVR" Send = Lookup(y , Dat) Call Senden Next Do : Loop 'endlosschleife '######################### Unterprogramme ################################# Senden: Do : Loop Until Clock = 1 And Daten = 1 'warte bis PC empfangsbereit 'Startbit (immer 0) Call Senden0 '8 Datenbists For X = 0 To 7 If Send.x = 0 Then '0 Senden Call Senden0 Else '1 Senden Call Senden1 End If Next 'parity If Parity.0 = 0 Then Call Senden0 Else '1 Senden Call Senden1 End If 'Stopbit (immer 1) Call Senden1 Parity = 0 Return Senden0: 'Sendet eine 0 über PS2 Datenport = 1 'Daten auf Output Daten = 0 'Daten auf low Clockport = 1 'Clock auf Output Clock = 0 'Clock auf 0 Waitus 30 '30µS warten Clockport = 0 'Clock auf Input Waitus 5 '5 µS warten Datenport = 0 'Daten auf Input Return Senden1: 'Sendet eine 1 über PS2 Clockport = 1 'Clock auf Output Clock = 0 'Clock auf 0 Waitus 30 '30µS warten Clockport = 0 'Clock auf Input Incr Parity Return Dat: Data &H33 , &HF0 , &H33 , &H1C , &HF0 , &H1C , &H4B , &HF0 Data &H4B , &H4B , &HF0 , &H4B , &H44 , &HF0 , &H44 , &H29 Data &HF0 , &H29 , &H12 , &H1C , &HF0 , &H1C , &H2A , &HF0 Data &H2A , &H2D , &HF0 , &H2D , &HF0 , &H12
Lesezeichen