mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Terminal


Autor: cerberus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: cerberus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verstehe. Ich werte also nur das 2. Zeichen aus?
Wenn ich also 0x1b 0x41 sende, wandert der Coursor eine Zeile nach
oben?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, so müsste das sein.

Autor: cerberus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Dir. Werde ich doch gleich mal ausprobieren

Autor: cerberus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn das Terminalprogramm abstürzt, machst nicht Du etwas falsch,
sondern derjenige, der das Terminalprogramm geschrieben hat. Probiere
ein anderes, notfalls tut's auch HyperTerminal (falls das nicht das
abstürzende Programm sein sollte).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.