PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tastatur an RS 232



Ka-Jo
07.02.2008, 18:47
Hallo, ich habe folgendes Problem und hoffe auf eure Hilfe. Ich besitze einen Industrie PC mit Motorola 68030 und OS9 als Betriebssystem. Leider ist die Tastatur defekt, seriell an der RS 232 angeschlossen. Ich habe mit einem Terminal Programm Daten zu Rechner gesendet, was auch gut funktioniert zB. 13 für Return oder 27 für Home. Jetzt habe ich ein kleines Prog. geschrieben welches einen Tatendruck erkennt und zB. 13 über die serielle Schnittstelle an den PC sendet. Ein Terminalprogramm erkennt die Eingabe und zeigt auch jeden Tastendruck an, mein Industrie-PC leider nicht. Leider habe ich keine Programmier Kenntnisse und musste mich auch erst einlesen um mein Prog. zu schreiben, ich denke hier liegt ein grundsätzliche Gedankenfehler vor, ich habe es mir zu leicht vorgestellt, ich sende einfach 13 für Return oder 109 für den Buchstaben m. Hat jemand eine Idee, ich bin für jeden Tipp dankbar.
Karl

McJenso
07.02.2008, 19:35
Hallo,

nur ein Schuß ins Blaue. Sind RxD und TxD richtig rum angeschlossen, event. mal tauschen?

Gruß

Jens

Ka-Jo
07.02.2008, 19:42
Hallo, danke für die schnellen Antwort. Der PC ( Eurocom 16 von Elcom) erkennt nicht das es sich um Tastaturcodes handelt, die Daten werden empfangen, also sind Baudrate, Anzahl Bits usw. richtig eingestellt. Eine gesendete 13 wird nicht als Return erkannt sonder als Zahl 13, eine über ein Terminalprog. gesendete 13 aber als Return. Ich denke das Format der gesendeten Daten stimmt nicht. Gruß Carl

McJenso
07.02.2008, 19:57
Hallo,



Eine gesendete 13 wird nicht als Return erkannt sonder als Zahl 13

Wie sendet dein Programm das genau? Eine 1 und dann eine 3 oder eine 13?

Ka-Jo
07.02.2008, 20:07
Hallo, ich habe auch mal 32(space) oder107(K) gesendet, werden als 32 bzw. 107(ohne Leerstellen) erkant und nicht Space bzw .k . Ich denke das 13 gesendet wird und nicht 1+3
Gruß Ka-Jo

Ka-Jo
07.02.2008, 20:20
Hallo, kann es sein das ich die Daten in HEX senden muss?
Gruß Ka-Jo

Furtion
07.02.2008, 20:59
Hi,

ich weiß nicht in was du programierst aber in bascom könnte das glaube
mit:

Dim I as Byte
I = chr(13)

gehen.

vklaffehn
07.02.2008, 23:02
Moin!
Du mußt ja auch nicht '13' senden, sondern ein byte mit dem Wert 13, siehe Beitrag vor mir, ein 'A' entspricht z.B. einer 65, siehe auch hier : http://www.torsten-horn.de/techdocs/ascii.htm
MfG Volker

McJenso
08.02.2008, 13:59
Hallo,



kann es sein das ich die Daten in HEX senden muss

Woher sollen wir wissen, was für ein Zahlenformat dein Programm erwartet? Wenn der Wert über die Leitung geht ist er eh Binär, egal was es vorher war. Poste doch mal den Code das Programmes. Dann kommen wir wohl am besten weiter.

Gruß

Jens

Frank E.
08.02.2008, 19:41
Könnte sein, dass der PC sog. Scancodes erwartet. Ich glaube die sind 2 Bytes und haben nicht viel mit den ASCII-Codes der zugeordneten Zeichen gemein - die werden erst intern zugeordnet ... musst du mal unter "Scancode" suchen.

Frank

vklaffehn
08.02.2008, 22:44
Moin! Meine vermutung bezüglich der Ascii Codes beruht darauf, das sein Rechner '13' anzeigt, wenn er 13 sendet, das würde bei Scancodes nicht passieren. außerdem spricht der Anschluß per RS232 auch eher dafür, aber ich kann mich auch total irren ;-) Also wie Jens oben schon sagte, der Quellcode des Programmes würde wohl weiterhelfen.

MfG
Volker

Ka-Jo
09.02.2008, 18:04
Hallo, erst mal danke für die Antworten. Ich habe das Problem gelöst, eigentlich sehr einfach.
Chr$(13) senden und schon funktioniert es.
Ka-Jo