www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DOGXL an STM32


Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
16 Bit ist für diese Anwendung sehr unwahrscheinlich :-)

Nach einiger Diskussion mit einem Freund werden ich wohl den Font als 1 
bit abspeichern und dann eine 32Byte große Lookup Tabelle machen, sollte 
wohl der beste Kompromiss zwischen Speicherbedarf und Performance sein.

Gruß
Tom

Autor: Hannes S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marc Price (chiefstyle)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dank Dir!

Habs grad probiert, Paintshop Pro kann die umwandlung in 4 Farben.

Weiß aber nicht, ob das wirklich Sinn macht auf einem solchen Display, 
zumindest für Textausgabe etc.

Gruß
Tom

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.