Hallo, ich stehe vor dem Problem, mit dem MSP430F149 einen String unbekannter Länge (z.B. zwischen 1 - 100 Zeichen) einlesen zu müssen, der über eine UART-Verbindung an den Controller geschickt wird. Hat jemand dazu ein möglichst schlankes Codebeispiel, das auch wenig Ressourcen verbraucht ? Ich denke daran, den String als gelesen zu werten, wenn z.B. 10 Millisekunden kein neues Zeichen angekommen ist.
debugger schrieb: > Hat jemand dazu ein möglichst schlankes Codebeispiel, das auch wenig > Ressourcen verbraucht ? Du brauchst einen Fifo-Routine, die dir die empfangenen Zeichen erst mal in einen Puffer schreibt. Sieh dir mal die UART-Lib von Peter Fleury an. Die ist zwar für den AVR, aber die Idee dahinter dürtfe weiterhelfen... http://homepage.hispeed.ch/peterfleury/avr-software.html > Ich denke daran, den String als gelesen zu werten, wenn z.B. 10 > Millisekunden kein neues Zeichen angekommen ist. Ja, wenn du meinst das reicht...
Üblicher Weise liest man eine String ein bis zum CR/LF (0D,0A). Peter
Hallo, ist Dein String komplett unbekannt oder sendest Du ihn selbst? Ev. kannst Du ja im String die Länge mitsenden (1. oder 2. Byte) Also eine Art Header. Eine Checksumme kann man dann auch gut mitsenden. Gruß Arnold
Danke für die Hinweise ! Die Routine zum Lesen des Strings soll möglichst vielseitig einsetzbar sein. Z.B. zum Lesen von Rückmeldungen von Modulen auf AT- Befehle, etc. Endeerkennung mit CR/LF wäre eine Möglichkeit, aber für den Fall von Übertragungsfehlern etc. sind wohl noch Ergänzungen nötig. Werde mich jetzt mal mit der UART-Lib von Peter Fleury beschäftigen und mich wieder melden, wenn sich noch Fragen ergeben.
debugger schrieb: > Danke für die Hinweise ! > Die Routine zum Lesen des Strings soll möglichst vielseitig einsetzbar > sein. Dann lass den String mit einem Terminierungszeichen enden. Üblicherweise nimmt man dazu \n Wenn man es ganz universell haben will, dann kann man konfigurieren, welches Zeichen einen String abschliesst. Aber lass den Quack mit regulärem String-Ende durch Timeout. Das führt nur zu Problemen. Und sei es nur ein RS232 Kabel, welches irgendwo abfällt, weil die Putzfrau das Kabel rausgerissen hat.
Hallo Karl-Heinz, bei der Antwort von Modulen (z.B. SMS/GPRS SIM340 EZ oder einfach auch irgendwelche Handys, die über ihre Schnittstelle angesteuert werden) habe ich es aber nicht selbst in der Hand, wie der String endet. Werde mal nachsehen, wie die Terminierung da aussieht.
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.