Forum: Mikrocontroller und Digitale Elektronik proportionaler Font auf LCD


von Felix Ziegler (Gast)


Lesenswert?

Hallo

Hat jenamd Infos zu proportionaler Fontauf einem Graphik-LCD?
(Source-Code, Font-Definitionen, etc)

Ich verwende zur Zeit einen selbst gemachten Treiber mit 6x8 Font.
Da ich viel Text anzeigen muss, möchte ich mit einem TrueType-Font
etwas mehr Zeichen auf eine Zeile bringen.

Wer kann helfen?


Gruss
Felix

von Jörg Wunsch (Gast)


Lesenswert?

Wieviel Megabyte RAM und ROM hast Du denn so zur Verfügung? ;-)

(Die Diskussion hatten wir neulich schon mal.)

von Felix Ziegler (Gast)


Lesenswert?

Ram habe ich etwa 1kb für das Display, brauche ich aber kan, da ich
direkt im Speicher des Displays arbeiten kann.
In Programmspeicher habe ich einige 10kb frei, und eine Datenflsh wäre
auch noch da.
Ich denke viel mehr Programmspeicher sollte das nicht brauchen, da ich
ja jetzt auch schon die Fixen Font-Tabellen habe...

Gruss Felix

von Matthias (Gast)


Lesenswert?

Hi

muß ja kein Truetype sein. Eine einfache, proportionale Schrift sollte
sich relativ einfach realisieren lassen. Einfach jedes Zeichen in einer
Struktur speichern:

typedef struct{
    unsigned char w;  //Breite des Zeichens
    unsigned char *d; //Feld mit dem Bitmuster
}lcd_char;

Dann evtl. mehrere komplette Sätze für unterschiedlich Schriftgrößen
anlegen. Drei Größen sollten durchaus drin sein.

Für TrueType (frei skalierbare Schrift) brauchts wohl wirklich die von
Jörg angesprochenen Megabytes.

Matthias

von Jörg Wunsch (Gast)


Lesenswert?

Ich denke auch, zwei oder drei vorskalierte Fonts (wenn es nur um die
Abstände geht, genügt sogar einer) als Bitmaps sind eine brauchbare
Lösung.  Man kann ja einen Fontrenderer auf einem Universalrechner
laufen lassen und die Glyphs berechnen.

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
Noch kein Account? Hier anmelden.