Grafikdisplay + Speicher Sparen

Gast #2707758
Lesenswert?

Ich habe ein einfaches Grafik-Display, für das ich 2 Zeichensätze 
benötige.
Die Zeichensätze brauchen insgesamt 2850 Bytes an Flash-Speicher.

Gibt es hier eine Möglichkeit Speicher zu sparen?? Da ich noch etliche 
konstante Tabellen habe, die ich ins Flash speichern möchte.
Gast #2707765
Lesenswert?

Vielleicht einfache Vector Schriftarten?
Kann aber sein das dadurch der Code dafür den Platz braucht.

Warum geht kein SPI Flash?
Kannst Du extern hinten am Display anbringen, die Display-Datenleitungen 
nutzen und braucht nur eine CS Leitung zusätzlich.
(Firma: matzetronics) #2707792
Lesenswert?

Was benutzt du denn für Zeichensätze? 8*8 z.B. ist meistens 
Platzverschwendung, da reicht 5*8 allemal. Bei 5 bytes pro Zeichen und 2 
kompletten ASCII Zeichensätzen (0-127) sind das dann 1280 bytes. Für 
etwaige Sonderzeichen bieten sich die 'Gremlins' an, der Bereich 
zwischen 0x00 und 0x1f.
(Firma: matzetronics) #2707798
Lesenswert?

Sandra schrieb:
> Nein, leider brauch ich 12x16 bzw. ein bisschen Größer wäre die Schrift
> auch nicht schlecht.

Sandra schrieb:
> Nein, leider brauch ich 12x16 bzw. ein bisschen Größer wäre die Schrift
> auch nicht schlecht.

Da gibt es einen einfachen Trick: Wirf jede Spalte zweimal 
hintereinander aufs LCD. Das gibt schon mal doppelte Breite. (Mach ich 
bei meinen DOGMs auch über ein Flag 'double'). Doppelte Höhe ist ein 
bischen trickiger, aber das Prinzip geht genauso. Ich hab hier ein paar 
Assembler Sourcen für AVR und die DOGM LCDs, wird dir aber vermutlich 
nicht so viel nützen, wenn du in C schreibst.
Welche MCU ist es?
#2707806
Lesenswert?

Sandra schrieb:
> Ich hab schon versucht, einzelne Zeichen rauszunehmen, doch dann geht
> die Zuweisung über ASCII nicht mehr

Wie wäre es, z.B. nur die tatsächlich benutzten Zeichen, also 0..9, 
A..Z, a..z, ö ä ü, +-/* zu verwenden und dann eine Funktion zu 
schreiben, die zu einem gegebenen ASCII-Zeichen den zugehörigen Offset 
in der Tabelle ausspuckt.

Eine weitere Möglichkeit wäre es, einen Vektorfont zu benutzen oder die 
Buchstaben mit einer Art Overlay-Verfahren "zusammenzu-oder-n". Dazu 
könnte man z.B. Sachen, die bei mehreren Zeichen gleich sind, als einen 
einzigen Eintrag in der Tabelle anlegen und so die Pixeldaten für jedes 
Zeichen einzeln mehr oder weniger Dynamisch erzeugen.

Das ganze ist natürlich wieder ein Kompromiss zwischen Codegröße, Größe 
der Lookuptabellen und Ausführgeschwindigkeit.


mfg mf
Gast #2707816
Lesenswert?

Also aktuell habe ich einen Attiny461.
Ich hätte gerne einen Schrift darauf, die doppelt so groß ist. Hat wer 
eine mit der Höhe von 32 Pixel? Ich würde mir die notwendigen Zeichen 
und Ziffern dann rausholen und vielleicht sogar als fertige Strings 
zusammentun. Ich habe nicht wahnsinnig viele verschiedenen Ausgaben.
Gast #2707830
Lesenswert?

Das mit dem "Aufpusten" in die breite habe ich verstanden, doch ich 
müsste es eben in die Höhe machen. Gibt es hier eine Vorlage?
Hauptsächlich brauche ich die Zahlen für die Anzeige 24 
Buchstaben/Zeichen.
Selbst wenn ich auf den 861er wechsle, muss ich platzsparend arbeiten, 
da noch eine Lookup-Tabelle in den Flash muss.
#2707922
Lesenswert?

Mal eine generelle Frage:

Sandra schrieb:
> Ich habe ein einfaches Grafik-Display

Größe in Pixeln? Farbig? Wieviel Bit pro Pixel?

Um den Displayinhalt z.B. von einem
320x240, Schwarzweiß, 1 Bit pro Pixel im RAM(!!) abzulegen, braucht man 
schon 9,6kByte. Ein kompletter Zeichensatz mit 12x8 Pixeln braucht immer 
noch 3kByte Flash. Wie wärs einfach mit einem größeren Controller?

Hintergrund: Ich hab mal eins von diesen billigen garnicht-intelligenten 
320x240-Displays(Pollin...)  mit einem ATmega16 verhäkelt. Der 
Displayinhalt ist 800 Zeichen groß, ich brauchte also schon mal 80% des 
1kB RAM, nur um zu wissen was da angezeigt wird. Die Zeichen wurden alle 
Zeile für Zeile scheibchenweise aus der LUT geholt.

mfg mf
Gast #2707942
Lesenswert?

Ich habe mir das mit dem Vektorformat nun mal angesehen, aber so wie ich 
es rauslese, kann ich nicht einfach dynamisch aus ein paar kleinen 
pixeln einen großen Buchstaben erzeugen (ich sehe zumindet die Fkt. dazu 
nicht).

Aber so wie ich dass sehe, wäre es doch die Lösung für mich wenn ich 
einen 5x7er Schriftsatz nehme, die Pixel in x-Richtung doppelt ausgebe 
und in y-Richtung z.B. jeden Pixelwert ver4fache.
Oder würde dass dann bescheiden aussehen?

(Anderer Mikrocontroller ist leider nicht so einfach möglich)

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