Formatierte Ausgabe

Gast #121078
Lesenswert?
• ▲
▼
Hallo,

für Debug-Zwecke, will ich die Werte vom A/D-Wandler MAX186 über den
UART vom AVR an den PC übergeben. Soweit geht es auch. Nur wie stelle
ich es an, das die Werte nicht fortlaufend hinereinander geschrieben
werden, sondern die alten überschrieben werden? So eine Art
Seitenrücksprung?

Mfg Sascha
Gast #121083
Lesenswert?
• ▲
▼
Wenn nur CR (0x0d - Carriage Return) gesendet wird, sollte das Terminal
zum Zeilenanfang (nicht Seitenanfang!) zurückspringen. Ein LF (0x0a -
Line Feed) springt in die nächste Zeile, ohne die horizontale Position
zu verändern.

Beispiel: Nacheinander werden folgende Zeichen übertragen

h a l l o <cr> n a s e

Danach sollte auf dem Bildschim "naseo" zu lesen sein und der Cursor
auf dem "o" stehen.

Beispiel: Nacheinander werden folgende Zeichen übertragen

h a l l o <lf> n a s e

Danach sollte folgendes auf dem Bildschirm stehen:
hallo
     nase

Zum "Debuggen" von derlei Dingen ist ein Terminal hilfreich, das den
empfangenen Hexcode darstellen kann; weder Hyperterminal noch das
Win3.11-Terminal können das.
Gast #121084
Lesenswert?
• ▲
▼
hatte auch schon derartige Probleme mit diversen Terminalprogramme.
cr heisst eigentlich zum Anfang der Zeile zurückzukehren, die meisten
Programme stellen sich aber so "schlau" an, dass sie meinen, dem
dummen Benutzer unter die Arme greifen zu müssen, der meint mit cr
schon eine neue Zeile :-)
Was bis jetzt bei allen Programmen geholfen hat: vor der Ausgabe die
entsprechende Anzahl backspaces zu senden (0x08). Wenn deine Anzeige
also lautet:
15.654
musst du vor der Ausgabe 6 x 0x08 senden. Ändert sich die Länge des
auszugebenden strings, bei der Ausgabe mitzählen (printf gibt auch
einen  Rückgabewert, wieviele Zeichen ausgegeben wurden), und das beim
nächsten Mal mitverarbeiten.
Gast #121085
Lesenswert?
• ▲
▼
Wenn printf verwendet wird, kann es auch sein, daß der C-Compiler dem
Anwender unter die Arme greift und aus einem \n ein \x0d\x0a macht.
Ein einzelnes \r sollte allerdings nicht übersetzt werden.

Hilfreich ist - wie bereits gesagt - ein anständiges Terminalprogramm,
das die empfangenen Hex-Codes anzeigen kann.
Wenn ich mich recht irre, konnte das mal ein uraltes ProComm - aus der
präkolumbianischen 16-Bit-Windows-Zeit.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.