Ich verwende mit einem Uno ein 1,8" TFT Display mit 128x160 Pixeln.
Als Library verwende ich die original "Arduino TFT". Diese baut zwar auf den Adafruit_gfx und Adafruit_ST7735 Libraries auf, aber in der Arduino-TFT-Lib ist jedoch im Gegensatz zu den Adafruit-Libs "setFont" nicht implementiert.
Der einzig vorhandene Font ist sehr "pixelig". Wenn ich das richtig blicke, dann verwendet die Arduino-TFT-Lib den Font "glcdfont.c"
Ich benötige bei meiner Anwendung eigentlich nur einen Font und würde gerne diesen Adafruit-Font "FreeSansBold12pt7b.h" verwenden. Kann ich die irgendwie "tauschen"?
Vielleicht habe ich mich ja auch blöd ausgedrückt .....
Den von Dir geposteten Link kenne ich. Hier werden zwei Libraries (Adafruit_GFX_AS und Adafruit_ST7735_AS) angeboten. Bringt mich aber nicht weiter, da könnte ich auch die originalen Libraries nehmen.
Die Arduinio-TFT-Library passt ja eigentlich, nur der Font könnte es etwas "fülliger" sein.
Der von dieser Library verwendete Font steht wohl in der Datei "glcdfont.c" und nennt sich dort "Standard ASCII 5x7 font".
Ich dachte, dieser Font wäre halt austauschbar ..... (Ist er sicherlich auch, nur ich weiß nicht wie)
gj99:
Ich dachte, dieser Font wäre halt austauschbar ..... (Ist er sicherlich auch, nur ich weiß nicht wie)
Das ist er. Für eine 8x8-Matrix habe ich einen Font auch schonmal angepaßt.
Der Font ist in dem Feld font[] definiert. Wenn Du das Feld änderst, ändert sich die Anzeige. Habe ich noch nicht gemacht, denke ich aber. Den Inhalt kannst Du mittels Fonteditor ermitteln. Ich habe Arduino_Char_Gen.exe installiert, hat jemand aus dem Forum zur Verfügung gestellt. Display - Balken - Spielerei - Demos
Also am Ende ein Ausrufezeichen. In glcdfont.c habe ich die Zeile
"0x00, 0x00, 0x5F, 0x00, 0x00," geändert in
"0x7D, 0x00, 0x5F, 0x00, 0x7D,". Dadurch sieht die Anzeige dann so aus:
Klar, wenn Du die Bytes veränderst, änderst Du auch die Darstellung. Aber so einfach ist es leider nicht.
Die Bytes für meinen "Wunsch-Font" habe ich ja. Die Datei mit den Byte-Mustern für diesen Font ist ja im Verzeichnis Fonts der Adafruit-Library hinterlegt.
Einfach austauschen geht aber nicht. Dies hängt wohl mit der "Grund"-Größe des Fonts zusammen. Der Standard-Font besteht aus 5x7 Pixel - der Wunsch-Font aus 12x7 Pixel.
Da ich aber nicht weiß, wie ich das dem TFT bzw. Arduino "beibringen" kann, komme ich nicht weiter.
gj99:
Einfach austauschen geht aber nicht. Dies hängt wohl mit der "Grund"-Größe des Fonts zusammen. Der Standard-Font besteht aus 5x7 Pixel - der Wunsch-Font aus 12x7 Pixel.
Vollkommen richtig.
gj99:
Da ich aber nicht weiß, wie ich das dem TFT bzw. Arduino "beibringen" kann, komme ich nicht weiter.
Dann mußt Du die Bibliothek, mindestens Adafruit_GFX::drawChar verändern.
Der Font FreeSansBold12pt7b ist aber, wenn ich das richtig sehe, ein Proportionalfont, während der Standardfont das nicht ist. Das paßt dann sowieso nicht. Du müßtest einen Monofont als Vorlage wählen.
Also ich kehre zurück zu den Adafruit-Libraries ...
Für mein Projekt brauche ich zwar nur eine einzige ("große") Schriftart, aber das wird mir jetzt alles zu schwierig. So weit bin ich nicht im Umgang mit dem Arduino.
gj99:
Also ich kehre zurück zu den Adafruit-Libraries ...
Ich denke mal, Du verlierst dadurch nichts. Denn das, was Du vor gehabt hast, hätte zumindest in die Nähe dessen geführt, was die Adafruit-Bibliothek schon macht.
gj99:
Für mein Projekt brauche ich zwar nur eine einzige ("große") Schriftart, ...
Nur die von Dir eingebundenen Schriftarten benötigen auch Speicher.
Das ist mein Wunsch-Font (gehört zu Adafruit_GFX - Library)
#include <Fonts/FreeSansBold12pt7b.h>
Jetzt muss ich mal sehen, was es für einen "Speicher kostet" ein Bild auf dem TFT auszugeben. Dann kann ich mehr sagen, was an Speicher eventuell fehlt.