PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Keyboardemulator



Fusebitversteller
16.10.2005, 13:18
Hallo Miteinander !

Komme mal gleich zur Sache:
Ich mochte einen ATmega8 als Keyboardemulator benutzen. Der Emulator funktioniert soweit auch sehr gut. Mit dem folgenden Code wird ein A übermittelt und taucht bei dem angeschlossenen Rechner dann im Editor o.ä. auf:

Print "Sende a "

Config Atemu = Int1 , Data = Pind.3 , Clock = Pinb.0

Sendscankbd Scan

End

Scan:
Data 3 , &H1C , &HF0 , &H1C
'Send 3 Bytes

'-------MakeA

'------------------BrakeA

Jetzt kommt das eigendliche Problem welches mich nun seit 2 Tagen beschäftigt:
Ich möchte via RS232 den Scancode direkt zum ATmega schicken um beliebe Tasten/Tastenkombinationen auszulösen. Das Problem dabei ist, dass Bascom anscheinend keine Variablen in der Data-Anweisung mag. Er sagt mir dann immer "numeric parameter expected". Habe mittlerweile echt alles mögliche ausprobiert aber ich kriege es nicht gebacken :-(
Anbei mal ein Beispielcode zur Abfrage, wo dann irgendwie die Variablen "Ar" in die Data-Anweisung integriert werden muß.
Hat vielleicht eine von Euch `ne Idee ??


Dim Ar(4) As Byte

Print "Start:"

Config Atemu = Int1 , Data = Pind.3 , Clock = Pinb.0

Do

Inputbin Ar(1) , 4
Printbin Ar(1) , 4

Sendscankbd Scan

Loop

End

Scan:
Data 1 , ???? 'Hier weiß ich nicht weiter...
'Send 1 Byte

Danke und Gruß,
Fusebitversteller

PicNick
16.10.2005, 14:29
Das wird so nicht gehen. Sendscan ist so gedacht, daß die gewünschten Testen FIX definiert werden. (deshalb "DATA")
Es ist nicht gedacht, diese Scan-Codes als Variable anzugeben.
Wenn du Assembler kannst, könntest du recht leicht die Funktion aus der Library kopieren und eine Variante machen. geht ja nur darum, ob er aus dem Flash oder aus dem SRAM seine Daten kriegt, die eigentliche Ausgabe wär ja dasselbe.

Die Fehlermeldung kommt daher, daß da "DATA" in den Flash-Speicher schreibt, also fixe Zahlen benötigt werden und keine Variablen.

Fusebitversteller
16.10.2005, 14:58
Danke für die schnelle Antwort. Sowas in der Art habe ich mir fast gedacht...
Assembler ist noch nicht so wirklich meine Stärke, aber da wird mir dann wohl nichts anderes übrig bleiben :-k

PicNick
16.10.2005, 15:32
Ich kann dir nix helfen, da ich die AT_EMULATOR - Library nicht hab.
Aber du mußt schauen, den Teil zu finden, wo er sich mit LPM über das Z-Register die Flash-Daten holt.
Der Rest kann dir gleich sein.