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?
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.
Verstehe. Ich werte also nur das 2. Zeichen aus? Wenn ich also 0x1b 0x41 sende, wandert der Coursor eine Zeile nach oben?
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?
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).
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.