Probleme mit VBA, \0 und HyperTerminal

OP #1127874
Lesenswert?

Hallo,

ich habe Schwierigkeiten bei der seriellen Kommunikation mit meinem µC. 
Es ist ein Atmega88. Ich möchte mittels RSAPI.DLL und Excel mit dem 
Prozessor kommunizieren. (Daten senden empfangen, am PC anzeigen usw.) 
Ich schicke ein Steuerzeichen z.B. 'X' gefolgt von '\0' in einem String 
an den Prozessor. 'X' entspricht dabei den gewünschten Daten die er 
senden soll und '\0' sagt ihm, dass er aufhören kann zu empfangen. Das 
funktioniert leider nicht, so wie ich als Stringendzeichen '\0' 
verwende. Wenn ich zum Erkennen des Stringendes z.B. '?' benutze geht es 
tadellos.
Dase eigentliche Problem ist, dass ich nicht weiß, wie man in VBA einen 
String macht, der '\0' enthält oder wie man im Hyperterminal ein '\0' 
sendet.

Ich würde mich freuen, wenn ihr mir das verraten könntet. Ich such schon 
ewig im Netz und hab nichts gefunden. C-Programmierung kann ich ganz 
gut, aber mit VB bzw. VBA hab ich grad erst angefangen, also seid bitte 
nicht so hart mit euren Antworten.

Wenn ich übrigens aus der RSAPI.DLL mit der Funktion SENDBYTE erst das 
Steuerzeichen z.B. 'X' und dannn '\0' sende funktioniert es übrigens 
auch.
Aber diese Umsetzung gefällt mir einfach nicht.


Gruß

Paul
Gast #1127901
Lesenswert?

Zeig mal deinen kompletten Code, sonst kann ja keiner was dazu sagen. 
Kann auch sein, dass du es einfach separat schicken musst. Verträgt 
SENDBYTE denn wirklich mehrere Zeichen auf einmal? Auf der Seite von 
Burkhard Kainka (http://www.b-kainka.de/vb5.htm) wird DOUT für die 
Ausgabe eines Wertes verwendet, vielleicht findest du dort ja noch 
was...

Ralf
Gast #1127902
Lesenswert?

Wieso benutzt Du die RsApi.DLL? Bei Windows kannst Du einfach eine Datei 
mit dem Namen "COM1", COM2", LPT1" etc... öffnen und darauf 
schreiben+lesen.

Open "COM1" For Binary Access Read Write As #1
  Put #1, , "Hello World" & Chr(0)  ' add \0 as stringend
Close #1
Gast #1127905
Lesenswert?

Ach so, HyperTerminal ist großer Schrott. Ein /0 kannst du schicken, 
wenn du ALT gedrückt hältst, dreimal NUM0 drückst und ALT wieder 
loslässt.

Aber ich würde dir empfehlen, ein anderes Terminalprogramm zu nehmen, 
TeraTerm, BrayTerminal oder das Terminalprogramm von Tobi hier aus dem 
Forum.
Bei denen hat man viel mehr Funktionen und kann auch direkt HEX-Werte 
eingeben...

Ralf
OP #1127981
Lesenswert?

Hallo,


ich benutze das Terminal nur, um schnell zu testen, ob der µC das macht 
was er soll. Ich werde mir aber mal ein bessere runterladen, wenn ihr 
sagt dass die nicht Windows Terminals besser sind. Das mit \0 ist ja 
sehr umständlich.

Das man eine Datei Namens "COM1" öffnen kann, wusste ich nicht. Aber wo 
gebe ich da die Baudrate, Paritär usw. ein?

Das mit Sendbyte habe ich so gemacht.

SENDBYTE asc("X")
SENDBYTE 0

und das hier hab ich ausch schon probiert

SENDSTRING "X" und Chr(0)

geht aber auch nich.

Ich probier das jetzt mal per Terminal.


Vielen Dank

Gruß

Paul

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren