Hallo an Alle, ich hab jetzt nach einiger Zeit mal wieder mein LCD zur Hand genommen. Mit der Absicht Messwerte anzuzeigen. (Gibt ein etwas größeres System mit verschiedenen Funktionen) Für unterschiedliche Tests hab ich jetzt an meinem AVR das LCD und einen PC hängen. Und eben genau jetzt wird es interessant. Im AVR hab ich zwei große Puffer angelegt, für alles vom und zum PC. Es werden aber selten so viele Daten übertragen, dass der Puffer genau voll wird. Nun würde ich von euch gerne wissen wie man das im allgemeinen steuert, dass die derzeitige Übertragung endet. Bisher habe ich '\0' oder '\n' verwendet. Beide Zeichen sind aber nicht wirklich dafür definiert, auch wenn ich es oft gesehen habe. Zudem ist '\n' ungeeignet, da ich ja vielleicht auch mal einen Zeilenumbruch brauche. Dennoch habe ich das auch bei Pc Software von größeren Firmen so gesehen. Ich bin mir jetzt einfach nicht sicher was ich da machen soll. Danke schon mal im voraus für eure Meldungen. Gruß Domi
DominicS schrieb: > Es werden aber selten so viele Daten übertragen, dass der Puffer genau > voll wird. Voll sollte der Empfangsbuffer nie werden. Falls doch, hast du mehrere Möglichkeiten: - Buffer vergrössern - Daten schneller verarbeiten - Übertragungsgeschwindigkeit reduzieren - Irgendwas am Protokoll drehen DominicS schrieb: > Nun würde ich von euch gerne wissen wie man das im allgemeinen steuert, > dass die derzeitige Übertragung endet. Generell können Trennzeichen nur verwendet werden, wenn diese nicht im Zeichensatz der Nutzdaten auftreten. Wenn die Übertragung in Klartext über ein Terminal stattfindet, bietet sich ein Zeilenumbrung als Ende an, da von einem Menschen einfach lesbar. Möglich ist auch, eine fixe Länge pro Zeile zu verwenden und den Rest mit Füllzeichen (z.B. Leerzeichen) aufzufüllen. Werden Binärdaten übertragen, kommst du wohl nicht um ein Protokoll mit einer Längenangabe herum.
be stucki schrieb: > Werden Binärdaten übertragen, kommst du wohl > nicht um ein Protokoll mit einer Längenangabe herum. Warum nicht? Eine häufig verwendete Möglichkeit ist es, ein ESC-Zeichen aus dem erlaubten Zeichensatz herauszunehmen. Dieses Zeichen wird dann vor der Aussendung eines Steuerzeichens in den Datenstrom eingefügt. Der Empfänger muss es erkennen, die Steuersequenz verarbeiten und die restlichen Daten weiterreichen. Falls in den Eingangsdaten das ESC-Zeichen vorkommt, wird die dem Empfänger durch eine Steuersequenz mit eben diesem ESC-Zeichen als Argument, mitgeteilt, so dass er nur ein einzelnes ESC-Zeichen als Dateninhalt weiterreicht. Der Overhead liegt unter 1%.
be stucki schrieb > Wenn die Übertragung in Klartext > über ein Terminal stattfindet, bietet sich ein Zeilenumbrung als Ende > an, da von einem Menschen einfach lesbar. Ja das stimmt wohl, so habe ich das bisher auch immer bei Terminals gesehen. Aber ich könnte mir vorstellen, das es bei einer Übertragung von größeren Textblöcken. Welche an ein LCD weitergereicht werden Probleme geben wird. Wobei LCDs sowieso kein '\n' unterstützen, in den meisten fällen passiert nichts oder es gibt ein Random Zeichen.
falsches Forum... Das hier wäre das richtige: https://www.mikrocontroller.net/forum/mikrocontroller-elektronik Weil siehe Überschrift des Forums: > Hier könnt ihr eure Projekte, Schaltungen oder Codeschnipsel vorstellen und > diskutieren. Bitte hier keine Fragen posten!
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.