Go Down

Topic: Signed Int Werte per RS232 zwischen Arduinos austauschen (Read 202 times) previous topic - next topic

combie

Quote
Wenn es universell, direkt lesbar (für Menschen), leicht testbar sein soll, gibt es zig fertige Lösungen, von Nick Gammon bis parseInt, die textbasiert arbeiten.

Wenn es schnell sein soll, hat binäre Übertragung einen Vorsprung, allerdings muss man sich dann um die Details selber kümmern.
Der CmdMessenger kann beide Modi, und man muss sich trotzdem um (fast) nix kümmern.
Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

Rentner

Hallo,
aus Deinen beiden eingestellten Sketchen könnte man entnehmen das Du eigendich Texbasiert arbeiten willst. Ich denke das ist auch einfacher für den Anfang. Wenn die Anzahl der Zahlenwerte überschaubar und immer gleich ist, würde ich eigendlich zunächst mal alle Werte in einer Zeile ausgeben. Am Anfang eventuell ein Zeichen als Startkennung "S" und dann die einzelnen Werte mit einem Trennzeichen, zB ";"  getrennt. Am Ende der Zeile steht dann eine Zeilenendkennung z.B LF (lineFeed)


Beim Empfangen liest Du ,wenn ein S erkannt wurde, alle Zeichen bis das Endeichen kommt in einen C-Zeihenkette ein. Wie man daraus wieder die einzelnen Zahlenwerte macht findest du hier.

Wichtig ist natürlich das der Empfänger schnell genug die Soft-Serial Schnittstelle abfragen kann. Der Dateneingangspuffer ist standard glaube ich 64Byte groß der kann dir bei 10 Integerwerten(ca. 80 byte) überlaufen wenn das übrige Program lange Schleifen oder gar delay() verwendet. Wenn die Schnittstelle mit 9600 betrieben wird sind das etwa 960 Zeichen/s die da kommen können. Damit ist der Eingangspuffer dann nach etwa 60ms voll.

Heinz




 


Go Up