gibt es Möglichkeiten bei einem Text den man auf einem TFT darstellt automatische einen Zeilumbrauch hinzu zufügen? Also wenn der Text (der variieren kann) eine definierte Länge überschritten hat in der nächsten Zeile fortgesetzt wird?
Kann man überlange Texte auch als Laufschrift laufen lassen ? Wie man das Laufen macht weiß ich- allerdings läuft bei Ausnutzung der vollen Displaybreite der Text über und der Rest steht wieder ganz links....
Wie könnte man am besten Lauftext wie bei einem Teleprompter umsetzen- also dass der komplette Text von unten nach oben durchläuft- innerhalb eines definierten Fensters, egal wie lang der Text ist... Das zum Laufen bringen ist kein Drama, aber wie steuerich, dass von 20 vorhandenen Zeilen nur z.b. 6 angezeigt werden und durch laufen?
Mit 1. und 3. sollen auf meinem TFT Informationen die aus verschiedenen Sensoren und Berechnungen anleufen wie bei einem Teleprompter angezeigt werden, und eben auch lange Texte durch Zeilenumbruch sauber dargestellt werden.
Entweder gibt es solche Funktionen in der Bibliothek, oder Du muß alles selbst programmieren.
Ein solches Display stellt nur Pixel dar, dem ist es egal ob das Text oder Grafik ist. Wenn da eine Schrift durchlaufen soll, dann müssen die Pixel mit dem alten Text gelöscht und mit dem Text an einer neuen (verschobenen) Position wieder gesetzt werden. Der einzige Komfort ist dabei der Zeichengenerator, der die übergebenen Zeichen in Pixel umwandelt, die dann auf das Display ausgegeben werden.
Unterstützt die UTFT das in irgendeiner Weise? Oder gibt es andere Bibiotheken, die das können? Kann man von einem Text generell die Zeichenlänge lesen? Das kann man ja dann mit dem Raum den man für den text definiert abgleichen und gegebenenfalls via Formel einen Umbrauch generieren...
Hallo,
mag ja ein netter Ansatz sein, funktioniert aber nur bei statischem Text.
"funktioniert" hier ist das erste "i" das 40zigste Zeichen.
Wie willst Du das denn umbrechen?
funkti
oniert aber nur bei statischem Text.
Rechtsschreibprüfung mit dem Arduino?
Auch sollte es mich wundern, wenn es eine Lib gibt, die saubere Laufschrift auf einem Arduino-TFT erstellen kann.
Gruß und Spaß
Andreas
SkobyMobil:
Auch sollte es mich wundern, wenn es eine Lib gibt, die saubere Laufschrift auf einem Arduino-TFT erstellen kann.
Es ist auch eine Frage der Rechenleistung, nicht nur der Lib.
Hier zweimal die Adafruit-GFX Library
auf einem Arduino Mega
und einem mbed Board
Weiches Scrolling wie beim Filmabspann wird wohl nur hinkriegen, wenn man die Bilder Pixel für Pixel im Speicher aufbaut und während der Darstellung eines Bildes schon das nächste berechnet.
So extrem wie im zweiten Beispiel braucht man es sicher nicht angehen, aber ein Due oder Teensy wäre da wohl schon angebracht.
Nein, die Videos sollten nur den Geschwindigkeitsunterschied zeigen.
Laufschrift entsteht nur durch aufeinanderfolgende Einzelbilder. In jedem neuen Bild wird der Text um ein oder mehrere Pixel versetzt ausgegeben, z.B. mit einer Funktion wie hier (unten bei "Characters and Text"):
Je schneller die Bilder aufeinander folgen und je kleiner die Einzelschritte sind, desto flüssiger wirkt das.
Dazu muss der Controller die Bilder schnell genug erstellen können und die Schnittstelle zum Display möglichst schnell sein. Im ersten Video sieht man ja schön, wie lange das Aufbauen eines neuen Bildes braucht. Solche Überblendeffekte, wie im zweiten, wären da gar nicht möglich.
Ja, das ist aber auch kein Wunder wenn da jedes mal der komplette Bildschirm neu aufgebaut werden muss... sowas macht doch niemand...
Der Ansatz auf den ich hoffte war der dass man die Position für den Text Schrittweise ändert.... das scheint aber generell nicht zu gehen... zumindest klappt es bei mir nicht.
Du musst nicht unbedingt den gesamten Bildschirm neu aufbauen. Sondern nur den Bereich der sich ändert. Das hilft aber auch nur in Grenzen.
Es halt nicht so dass der Display-Controller einen Bild-Speicher hat in dem man direkt verschieben kann. Bei den einfachen 16x2 oder 40x4 Displays geht das. Halt auf Zeichen- statt auf Pixel-Ebene. Aber man sagt nur "scrolle" und das Display tut das. Jedenfalls für das gesamte Display. Einzelne Zeilen gehen schon wieder nicht. Aber bei den TFTs muss man jedesmal die gesamten Daten nochmal übertragen (und auch auf dem µC vorher immer wieder aus dem Flash auslesen). Da merkt man dass 16MHz doch etwas langsam sind. Diese Displays sind daher eher für relativ statischen Text und langsame Änderungen.
Im Prinzip muss man "nur" die Position des Texts immer anpassen. Außerdem den Text auf eine konstante Breite formatierten und den Rest mit Leerzeichen überschreiben. Ein Problem ist dass immer ein ganzer Buchstabe dargestellt wird. Es ist z.B. nicht möglich nur einen halben Buchstaben darzustellen, damit man ihn Pixel für Pixel nach links oder oben rausscrollen kann. Dazu müsste man die Text-Methoden neu schreiben, bzw. anpassen.
Aber Buchstaben für Buchstaben, bzw. Zeile für Zeile scrollen ist theoretisch machbar. Ob es gut aussieht ist was anderes.
OK, damit kann ich was anfangen.... dann lasse ich einfach nur alle 10 sec den Inhalt der einzelnen Zeilen in die jeweils nächste Zeile als ganze wechslen...