Terminal

Gast #235653
Lesenswert?

Hallo.
Ich übertrage Zeichen vom Terminalprogramm via serieller Schnittstelle
zum uC. Dabei habe ich festgestellt, dass beim betätigen der
Cursortasten die Zeichen "A" "B" "C" und "D" übertragen
werden.
Ich denke das das falsch ist.
Habe ich einen Fehler bei der Initalisierung gemacht und empfange nur 7
Bit statt 8?

Wenn ich Zeichen vom Cursor senden kann, kann ich sie dann auch
empfangen und so auswerten? d.H. kann ich den Cursor durch das
Termial-Fenster wandern lassen und Text an bestimmten Stellen
plazieren?
Wenn ja, welche Zeichen müßte ich dann senden?
Persönliche Seite #235654
Lesenswert?

Vermutlich emuliert das Terminalprogramm ein VT100/VT52-Terminal der
Firma DEC. Dessen Befehlssatz wird auch als "ANSI-Sequenzen"
bezeichnet.

Die Cursortasten senden i.d.R. eine Folge von Zeichen;
ESC (0x1b) A (0x41) für Cursor 'rauf
ESC (0x1b) B (0x42) für Cursor 'runter
ESC (0x1b) C (0x43) für Cursor nach rechts
ESC (0x1b) D (0x44) für Cursor nach links

Sendest Du mit Deinem µC diese Zeichen an das Terminalprogramm, sollte
sich wie von Dir angenommen der Cursor bewegen.
Gast #235658
Lesenswert?

So sieht die Zeile jetzt aus

/C
sprintf(mystring,"Datum\n\r%02d:%02d:%02d
%02d.%02d.%02d\x1b\x41\r", stunde, minute, sekunde, tag,
monat,jahr);
send_string_uart0(mystring);
/C

aber sobald das \x1b im String steht, stürzt das Terminalprogamm
sofort ab.
Mach ich was falsch? Gibt es noch eine andere Möglichkeit?

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