Mahlzeit, ich würde gerne per RS232 den PC als Display für meinen AVR verwenden, allerdings habe ich das Problem, wenn ich sekündlich etwas schicken möchte, dass alles untereinander angezeigt wird, ich hätte aber gern, dass es jedesmal überschrieben wird. Gibt es einen Befehl um die gesamte Konsole zu löschen? Denke mal nicht, oder? Habt ihr eine andere Idee? Lg Hofinger
Mit einem echten Terminalprogramm und Steuerzeichen geht das, natürlich.
echtes Terminalprogramm heißt was ? Und welche Steuerzeichen?
Hyperterminal ist ein Beispiel für ein für diesen Zweck völlig ausreichendes Terminalprogramm. Das emuliert den ANSI- resp. VT100-Terminalbefehlssatz; mit einer Suche nach "VT100 escape sequences" ist dessen Dokumentation leicht zu finden.
@Hofinger Also VT100 kann ich auch nur empfehlen. Ist recht einfach zu implementieren und bietet viele Möglichkeiten. (Cursor, Farben). Ich selbst habe damit schon eine Menüsteuerung realisiert. Ging sehr schnell von der Hand. Mit ner handvoll Funktionen lässt sich sehr viel machen, egal ob Debugging, Menüsteuerung oder eben das sekündliche Update eines Bildschirmbereiches zur Ausgabe. Als "Monitor" reicht dann hyperterm oder putty. Und die paar ESC-Sequenzen sind im nu implementiert. Dann mal ran ans Werk :-)
Übrigens solltest du von der Technik des 'Ich lösche mal den ganzen Bildschirm' Abstand nehmen. * Das dauert dann relativ lange bis wieder alle Fixtexte am Monitor stehen. * Zudem flackert es * Die in den letzten Zeilen ausgegebenen Dinge sind schlecht zu lesen eben weil sie sie höllisch flackern Daher ist die meistgebrauchte Escape Sequenz die des Cursor-Positionierens. Es ist auch oft recht hilfreich, wenn man sich vorher einen Plan macht, wie die Anzeige aussehen soll, welche Texte wohin kommen, welche fix sind, welche variabel sind, wie groß die Feldbreiten sein sollen. Auch sollte man den Vorteil des rechtsbündigen Ausgebens von Zahlen (also mit führenden Leerzeichen bzw. führenden Nullen) nicht unterschätzen. Dann braucht man meistens das Feld vorher nicht löschen, sondern kann einfach die neue Zahl drüberschreiben, ohne das Artefakte des vorhergehenden Inhalts übrig bleiben. Auf Anforderung des Benutzers (Spezialtaste) kann man dann immer noch einen kompletten Monitor-Update machen, damit man sich auch im laufenden Betrieb an den µC frisch koppeln kann und dann wieder eine vollständige Anzeige (inklusive Fixtexte) anfordern kann (oder die zb in jedem 10 Updatezyklus automatisch gemacht wird. Da steht dann Tür und Tor offen)
So, nachdem jetzt jeder nur schmarrn geschrieben hat, antworte ich jetzt mal auf die Frage: Du mußt am Ende der Zeile nicht ein "carriage return, line feed" schicken, sondern nur ein "carriage return" also 0x0D am Ende der Zeile statt 0x0A ( Also HEX 0D, Dezimal 13, im C-Code schreibt mann statt \n also ein \r) Dann wird deine (eine) Zeile auf dem Bildschirm überschrieben....
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.