hallo nochmal, ich habe folgende Variable: char s[]="Fensteralarm 1:\"ON\"\n "; dies zeige ich am Hyperterminal über die UART an, jedoch wird mir das \n nicht ganz so interpretiert wie erwünscht, ich möchte das eine neue Zeile angefangen wird, und der Cursor also auch ganz am Anfang der Zeile anfängt, und nicht an der Position von der vorigen Zeile... ist das möglich? gibts ähnlich wie "\n" auch was für return oder so? gibts irgendwo eine übersicht? thx tronic
Hallo, Ein Terminal braucht, wie du schon vermutest eine Carrige Return UND ein Linefeed am Ende. Wenn du also deine Variable wie folgt erweiterst, sollte es gehen: char s[]="Fensteralarm 1:\"ON\"\r\n "; "\r" entspricht 0x0D. Gruss Juergen
Hallo, vernünftige Terminalprogramme und sogar Hyperterminal (Eigenschaften | ASCII Einstellungen) erlauben die Einstellung, dass ein \n als \r\n interpretiert wird. Es gibt im übrigen einige schöne, leistungsfähige und freie Alternativen zum Hyperterminal. Quäl dich mit dem nicht rum, wenn es nicht unbedingt sein muss ;-)
Außerdem kann man noch in der Ausgaberoutine allen \n ein \r voranstellen. Das entspricht ungefähr dem, was die Terminal- treiber unter Unix machen: intern wird alles mit \n geschrieben, erst an der Grenze von Unix zur Außenwelt erfolgt die Anpassung.
Ich würde dir HTerm (http://www.der-hammer.info/terminal) empfehlen. Ich habe damit sehr gute Erfahrungen gemacht.
@Peter und Thomas: HTerm kenne ich schon lange, das ist ein super Programm zu Testen von Mikrocontroller-Schaltungen und zum Mitprotokollieren. Es ist aber keine Alternative zu HyperTerm, da es einen ganz anderen Ansatz verfolgt. Für "tronic" ist es dennoch sicher gut geeignet. HTerm stellt Sende- und Empfangsdaten in getrennten Fenstern dar, mit ASCII-, Hex-, Dez- und Bin-Format, jeweils separat schaltbar, mit vielen Protokollen (user-konfigurierbar), Zeichenzähler und -Trigger, Auto-Modi etc.. Ganz besonders praktisch ist, daß man die meisten Eigenschaften direkt an der Oberfläche ändern kann (da ist HyperTerm super-umständlich). HyperTerm jedoch stellt Sende- und Empfangsdaten im gleichen Fenster dar und erlaubt somit eine Kommunikation mit einem Terminalmodus, den man im Mikrocontroller programmieren kann; da gibt es dort dann eine Kommandozeile, in die man Befehle und Parameter eintippen kann, das ganze verhält sich dann in etwa so wie früher ein PC unter MS-DOS. Das kann zum Debuggen auf höherer Ebene sehr praktisch sein. Aber es erfordert, daß sich das Programm (hier HyperTerm) so verhält wie früher ein "Smart Terminal" wie z.B. VT52, VT100, TTY etc.). Das kann HTerm nicht (und ist dafür auch garnicht gedacht!). Ich suche schon länger nach einer Alternative für HyperTerm, das (im gleichen Fenster) auch Hex-Codes akzeptieren kann (ohne Alt/KleinerTastenblock) und die Einstellungen ähnlich wie bei HTerm einzustellen erlaubt (und ohne die langweilige zeitverbratende Weltkugel beim Start). Kennt jemand so ein Programm? Günter
jetzt hab ich doch noch eine Frage, wie krieg ich den Cursor im Hypeterminal eine Zeile rauf oder runter, oder auch nur ein zeichen links, rechts - ich möchte dadurch z.B ein Anzeige Fensteralarm1 "ON" auf Fensteralarm "OFF" wechseln ohne den ganzen Text Fensteralarm "OFF" nochmals in einer Charvariable zu speichern, geht das?
Wenn Hyperterminal auf ANSI eingestellt ist, dann schickst du ihm die ANSI-Escape Sequenzen: http://adm.lacitec.on.ca/~ymicha/mcours/micro1/escape.html
und wie integrier ich das im string? also char s[10]="???Zeile runter, cursor rechts usw."
Das sind ganz normale Texte! Lediglich das Escape Zeichen musst du extra darstellen, da es dafür im Zeichensatz kein Symbol gibt. Geht aber mit einer Fluchtsymboldarstellung als Hex-Code: char CursorRight[] = "\x1B[1C"; char CursorLeft[] = "\x1B[1D"; oder aber: char* CursorDown = "\x1B[1B"; char* CursorUp = "\x1B[1A";
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.