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
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
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
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
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
Um die COM-Schnitstelle zu konfigurieren rufe ich einfach den "mode.com" Befehl auf, z.B: MyId = Shell("mode.com COM1 baud=9600 parity=n data=8 stop=1 to=on xon=off dtr=off rts=off", vbHide)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.