www.mikrocontroller.net

Forum: PC-Programmierung Probleme mit VBA, \0 und HyperTerminal


Autor: Paul P. (dorpreuss)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Paul P. (dorpreuss)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.