Hallo,
habe ein kleines Problem, ein paar Bytes mit VisualBasic Express2008 aus
meinem ATmega32 zu lesen.
Mit der Funktion ConfigRead_Click sende ich ein 0xA1 an den ATmega, um
ihm zu sagen, was er schicken soll. Leider muß ich es 2-3 mal ausführen,
bis die Zeichen in richtiger Reihenfolge ankommen.
Teste ich es mit HTerm, funktioniert es tadellos. Wo habe ich einen
Fehler in der Empfangsroutine?
Nach dem ersten Durchlauf ist iI nicht mehr 0, aber vielleicht das
zweite Zeichen (wieviele Zeichen erwartest Du eigentlich?) noch nicht
eingetroffen, also .BytesToRead = 0 und die While Schleife bricht ab.
Du solltest entweder lesen (und dabei warten) bis Du ein eindeutiges
Endzeichen oder eine vorbestimmte Anzahl Zeichen empfangen hast.
Eventuell mit einem Timeout, falls etwas schiefgeht.
Hallo,
@severino, danke für deine Antwort. Habe es geändert und es
funktioniert.
Nun kommt (natürlich) das nächste Problem. Ich sende vom PC zum AVR bis
zu 64 Bytes ( nutze die Uart-Lib von Peter Fleury). Nun gehen teilweise
welche verloren, anstatt dem eigentlichen Wert dann eine 0. Das bei 10
Versuchen, ca. 4 mal.
Teste ich es anstatt dem AVR mit HTerm, sieht man, das alle Bytes
erfolgreich gesendet werden. Also liegt es jetzt am AVR Programm.
Hier der Teil der main.c
Sascha Focus schrieb:
> Teste ich es anstatt dem AVR mit HTerm, sieht man, das alle Bytes> erfolgreich gesendet werden. Also liegt es jetzt am AVR Programm.
Also mach im Forum "µC & Elektronik" einen neuen passenden Thread auf.