Terminalcodierung

Gast #459038
Lesenswert?

Guten morgen.

Ich will einen uC über RS232 mit einem Terminalprogramm ansprechen.
Ich kann Text senden und empfangen, die Kommunikation klappt also.

Ich will Verschiedene Parameter in einer Tabelle ausgeben.
Die Parameter sollen jede Sekunde aktualisiert werden.
Die neuen Werte der Parameter sollen genau dort stehen, wo die
alten Parameter standen.

Wie kann man so etwas realisieren?

Als nächstes habe ich noch eine Frage zum Zeichensatz.
Ich arbeite mit deutschen Windows XP. Das Programm des uC
schreibe ich mit Programmers Notepad. Als Terminalemulation
wird ANSI verwendet.
Wie sind die Ascii-Zeichen über 127 definiert?
Welche Codepage?

Vielen Dank, Tilo
Gast #459048
Lesenswert?

Super, genau so etwas wollte ich.

Kannst du mit das mit den ESC Sequenzen nochmal genauer erklären?
Beispiel: ESC[nA
Sende ich den String "ESC[nA" oder den Ascii-Code für ESC plus [nA,
also 0x1B + [nA ?

Bis dann, Tilo
#459909
Lesenswert?

Tilo Lutz wrote:
> Super, genau so etwas wollte ich.
>
> Kannst du mit das mit den ESC Sequenzen nochmal genauer erklären?
> Beispiel: ESC[nA
> Sende ich den String "ESC[nA" oder den Ascii-Code für ESC plus [nA,
> also 0x1B + [nA ?
>

Das n ersetzt du durch die Zahl die du brauchst.
Ich weiss jetzt nicht auswendig was ESC[nA macht.
Mal angenommen es verschiebt den Cursor n Zeilen
nach oben.
Wenn du also den Cursor 5 Zeilen nach oben haben
willst, schickst du   ESC[5A, wenn es nur 3 Zeilen
sein sollen: ESC[3A

Und ja ESC steht für ein ASCII Zeichen, nämlich das
ASCII Zeichen 0x1B. Für ESC[4A geht also
über die Leitung  0x1B  0x34  0x65

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren