Danke für deine Hilfe. Wie kann ich das in meinem Code verhindern? Hast du da vielleicht einige Zeilen Code für mich? Bin beim UART Empfang leider nicht so fit.
Danke für deine Hilfe. Wie kann ich das in meinem Code verhindern? Hast du da vielleicht einige Zeilen Code für mich? Bin beim UART Empfang leider nicht so fit.
----------------------------------------------------------------------------------------
Je tiefer die Sonne der Kunst sinkt, umso grössere Schatten werfen Zwerge!!
Dein Programm solltest Du Dir schon selber schreiben. Aber erstmal solltest Du überprüfen, ob das mit dem LF das tatsächliche Problem ist.
Die absolut einfachste Lösung wäre sicher Bytematch = 10 zu konfigurieren. Nur musst Du sicherstellen, dass der Sender sich immer daran hält.
Das CR befindet sich in diesem Fall dann mit LF am Ende der empfangenen Daten.
Ich find' ja Deinen Code fürchterlich umständlich, Du setzt den Empfang gepuffert auf, machst dann den Empfang doch wieder selbst, statt einfach nur den Puffer abzuholen, wenn Du einen Charmatch hast.
Eine andere Lösung, wenn Du den Code so beibehalten willst, füge buffer nur hinzu, wenn's ungleich LF, also 10 ist.
Geändert von MagicWSmoke (15.06.2013 um 20:35 Uhr)
Läuft! Herzlichen Dank! Bytematch=10 und es lief perfekt.
Wie ich es anders machen könnte weiß ich leider nicht. Bin für jeden Tipp der Codeoptimierung dankbar.
----------------------------------------------------------------------------------------
Je tiefer die Sonne der Kunst sinkt, umso grössere Schatten werfen Zwerge!!
Du hast im Moment 3 Puffer, den Puffer des Serialin, dann UART2eingang und von dort nach Abfrageuartlan. Statt dessen könntest Du bei einem Charmatch per Input der Abfrageuartlan gleich den Puffer der Serialin zuweisen.
Das Verhalten von Input muss mit Config Input auf das Format des CRLF angepasst werden.
Lesezeichen