DOGXL an STM32

OP #1763361
Lesenswert?

Hi,

nachdem mein DOGXL endlich läuft, bin ich mir nicht sicher wie ich mit
den Font-Daten umgehen soll.

Der Font Editor von Hagen ist ja absoult super und auch das DOGXL legt
seine Daten spaltenweise ab, ABER: Der Controller des Displays erwartet
2 Bits pro Pixel, d.h. ein Byte entspricht immer nur 4 Vertialen Pixeln.
Das DOGXL ist aber ein reines Monochrom Display.

Klar kann ich die Fontdaten jetzt entprechend aufblasen und und jedes
zweite Bit auf 0 setzen, aber mich würde interessieren, ob es auf einem
STM32 eventuell eine elegante Möglichkeit gibt, dass sozusagen on the
Fly beim verwenden der Fontdaten erst zu machen.

Gruß
Tom
Gast #1763423
Lesenswert?

Also "aufblasen" der Daten ist halt Speicherverschwendung - bei 
2bit/Pixel mag das noch gehen, aber angenommen Du wechselst später mal 
auf 16bit/Pixel, dann sollte man das tunlichst bleiben lassen.
Hier hilft also alles nix, Du wirst eine kleine Funktion schreiben 
müssen, welche die Fontmatrix "scannt" und dann das Ergebnis erstmal im 
RAM zusammensetzt und schließlich ans Display überträgt. Idealerweise 
ist das reiner hardware-unabhängiger C-Code und möglicherweise findet 
sich da schon was existierendes im Web für Dein Display, wenn auch für 
einen anderen Controller.
Gruß,
Hannes
Gast #1763437
Lesenswert?

Wegen der Performance: Die Umrechnerei fällt im Vergleich zur relativ 
langsamen I2C/SPI übertragung kaum ins Gewicht. Aber wenn man sie mit 
einer Lookup Table schneller gestalten kann, dann schadet das natürlich 
auch nicht.
#1773310
Lesenswert?

Hi Tom,

angehängt mal die Terminal Schrift in der Größe 7x5 für das DOGXL 
Display als Array und zwei Funktionen GLCD_WriteString() und GLCD_Write.

Mit der GLCD_WriteString() übergibst du den String und die Position, 
also

GLCD_WriteString(10, 10, "String");

Aus dieser heraus wird die GLCD_Write() aufgerufen, die das angegebene 
Schrift Array von 8 Pixel/Byte auf 4 Pixel/Byte umrechnet.

Diese Art der Umrechnung verwende ich auch bei meinen Bildern (muss nur 
ein wenig angepasst werden), so haben meine Bilder 2080 Byte anstatt der 
4160 Bytes (160x104x2 Pixel).

Ach übrigens das Display kann doch die 2bit greyscale anzeigen. Leider 
hab ich noch kein Programm gefunden, dass mir das Bild mit 2bit 
greyscale  Informationen angibt.

VG Marc
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren