Hi,
guck' mal in der Hilfe beim Befehl "Timeout"
Wenn eine einstellbare Zeit lang nix kommt, verläßt er die Input Routine.
Hab's selber noch nicht ausprobiert..
Gruß
Christopher
Ich habe ein Problem mit dem SUART.
Ich sende alle 100ms zwei Zeichen zu einem Meßgerät. Das funktioniert ja auch noch. Jetzt kommt mein Problem.
Die Antwort vom Meßgerät kann zwischen 0 und 10 Zeichen lang sein.
Wenn ich nun den Input Befehl verwende, hängt sich das Programm auf.
Gibt es eine Möglichkeit, die Schleife zu verlassen, wenn innerhalb von 5ms kein Zeichen mehr ankommt? Die Zeichenkette hat kein CR oder LF.
Vieleicht gibt es ja auch eine andere Möglichkeit. Ich habe mir schon fast die Finger wund getippt aber noch keine dauerhaft funktionierende Lösung gefunden.
Vieleicht hat ja jemand einen Beispielcode oder einen guten Tipp ?
Vielen Dank im voraus
Hi,
guck' mal in der Hilfe beim Befehl "Timeout"
Wenn eine einstellbare Zeit lang nix kommt, verläßt er die Input Routine.
Hab's selber noch nicht ausprobiert..
Gruß
Christopher
Ist nett gemeint, aber der Befehl ist nur für den HW-UART gedacht.
Danke für deine Mühe
Hi,
sorry. habe ich falsch verstanden, ich dachte du hättest dich verschrieben:
SUART = USART
Gruß
Christopher
Danke für den Hinweis.
Ich habe aber noch einen Fehler gemacht.
Ich sende und empfange nicht Zeichen sonder Bytes.
Deshalb kann ich auch nicht Inkey() verwenden.
Es könnte ja eine Null gesendet werden.
Danke für den Hinweis
Hi,
du könntest in einem Timer eine Variable hochzählen lassen, die du bei jedem empfangenen Zeichen nullst.
Erreicht die Variable einen bestimmten Wert (kein Zeichen mehr) , kannst du darauf reagieren.... Ach so, ja, BYTES , nicht Zeichen
Du startest einfach direkt nach dem Input den Timer und wartest bis er den Wert erreicht hat.
Gruß
Christopher
Habe ich schon probiert.
Ich bekomme einen Interrupt und springe in die entsprechende Routine.
Wenn ivh dann wieder zurück springe hänge ich wieder fest.
Hi,
Wie sieht es mit ischarwaiting aus und dann mit inkey holen ?
Das geht auch mit "0" und dem SW- UART.
Gruß
Christopher
Das werde ich auf jeden Fall ausprobieren.
Danke
So einfach ist das nicht.
Ischarwaiting(#2) = 1
Ruft den Fehler hervor: Error : 328 Not valid for SW UART
Ich habe die Lösung für die Software UART ohne WAITKEY vor kurzem gepostet:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=17444
Kurzfassung: Du musst RX mit INTx verbinden und INT auf eine fallende Flanke auslösen und GIFR beachten.
Lesezeichen