Forum: Mikrocontroller und Digitale Elektronik EA-DOG Display. Speicherplatzbedarf


von Dirk F. (dirkf)


Lesenswert?

Hallo zusammen,
zur Zeit vewende ich ein Textdisplay und möchte jetzt auf ein grafisches 
Display, z.B. EA-DOG Serie von EA umsteigen.
So wie ich das verstehe, muss man sich selber Zeichensätze definieren, 
um Textausgaben zu machen.
Kann jemand eine Abschätzung abgeben, wieviel mehr an Speicherplatz in 
der MCU (RAM / ROM) benötigt wird ?

Wenn ich also erst mal nur Text ausgeben möchte, um wie viele KB wird 
dann mein Code etwa größer werden ?

Danke und Gruß  Dirk

: Bearbeitet durch User
von PingPong (Gast)


Lesenswert?

Dirk F. schrieb:
> So wie ich das verstehe, muss man sich selber Zeichensätze definieren,
> um Textausgaben zu machen.

nö, aber man kann welche einprogrammieren

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dirk F. schrieb:
> Kann jemand eine Abschätzung abgeben, wieviel mehr an Speicherplatz in
> der MCU (ROM) benötigt wird ?

Den Speicherbedarf für einen Zeichensatz kannst Du leicht selber 
ausrechnen, indem Du Dir überlegst, wie groß ein Zeichen werden soll und 
wieviele davon Du benötigst.

Wenn Zeichen z.B. in einer 8x8-Matrix ausgegeben werden sollen, ist 
jedes Zeichen 8 Byte groß.

Den Rest der Betrachtung überlasse ich Dir ...

von Dirk F. (dirkf)


Lesenswert?

Ping Pong:  D.h, man schiebt über SPI einmalig bei Programmstart einen 
Zeichensatz in das Display hoch ?

von spess53 (Gast)


Lesenswert?

Hi

>Ping Pong:  D.h, man schiebt über SPI einmalig bei Programmstart einen
>Zeichensatz in das Display hoch ?

Nein. Der Zeichensatz befindet sich im Flash des Controllers.

MfG Spess

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dirk F. schrieb:
> D.h, man schiebt über SPI einmalig bei Programmstart einen
> Zeichensatz in das Display hoch ?

Nein. Für die Ausgabe eines Zeichens werden jedesmal die das Zeichen 
definierenden Pixel übertragen, was am schnellsten geht, wenn das 
auszugebende Zeichen im Speicher des Displays auf einer Bytegrenze 
liegt.

von U8glib (Gast)


Lesenswert?

Bei der U8glib habe ich für jeden Zeichensatz den benötigten 
Speicherbedarf angegeben. Die Fonts der U8glib sind hier gelistet:
https://code.google.com/p/u8glib/wiki/fontsize

U8glib unterstützt auch die meisten EA DOG Module.

Oliver

von Dirk F. (dirkf)


Lesenswert?

Hallo Olver,
danke für den Link.
Kann ic denn dort auch die Rohdaten der Font herunterladen, um ihn in 
mein C Programm eintubinden ?
LG Dirk

von Gerhard G. (g_g)


Lesenswert?

Hallo,

schau dir mal das an:

Beitrag "Library für EA-DOGM Grafikdisplays inkl. Font-Generator";

Der benötigte Speicherplatz im µC liegt je nach Zahl der eingebundenen
Schriften zwischen 2,9kB und 7 kB. Aussage Autor der Seite.

Ist eine tolle Lib und funktioniert auf Anhieb. Code und weitere Infos 
findest du auch auf dieser Seite.


Gruß G.G.

von Rudolph (Gast)


Lesenswert?

Ich hätte ja gerne mal einen Font direkt für das DogXL160. Am besten 
auch noch als zwei-dimensionales Array.
FLASH habe ich reichlich, mich stört bei allen Lösungen die ich bisher 
gesehen habe der Aufwand die einzelnen Zeichen erstmal zu "entpacken" 
und dann auch noch auf 4 Pixel pro Byte aufzublasen.

von Dirk F. (dirkf)


Lesenswert?

Hallo,
ja ich schließe mich Rudolf an.So wie ich das EA-DOG verstanden habe, 
werden immer Byteweise die Pixels reingeschoben.
Also muüsste man einfach im HEX Formal einen Font mit 8 Pixel Höhe oder 
16 Pixel Höhe haben.

Gruß Dirk

von U8glib (Gast)


Lesenswert?

Hallo Zusammen

So ganz kann ich euch nicht folgen.

A) Die Fonts der U8glib werden automatisch in das HEX File mit 
eingebunden sobald man sie verwendet. Ein spezielles Download ist nicht 
notwendig... jedenfalls wenn man die enthaltenen Beispiel-Makefiles 
verwendet oder das Atmel Studio entsprechend aufsetzt. Eine step-by-step 
Anleitung für das Atmel Studio 6 habe ich hier angegeben (mit vielen 
screenshots): http://code.google.com/p/m2tklib/wiki/as6

B) Es ist korrekt, daß man im DOGXL160 genau 4 Pixel auf einmal 
schreiben muss. Damit muß "an sich" das Zeichen ein ganzzahliges 
Vielfaches von 4 breit sein und zudem auf einem ganzzahligen Vielfachen 
von 4 positioniert werden. Ähnliche Beschränkungen gibt es bei praktisch 
allen anderen GLCDs ebenso. Ein Ziel der U8glib war es, genau dieses 
Problem zu lösen: Trotz der Beschränkung können beliebig breite Zeichen 
an beliebigen Positionen gemalt werden.

C) Ob es ein Gütekriterium ist, daß die Fonts einer Lib zwischen 2,9kB 
und 7 kB belegen weiss ich nicht. Ich schätze bei U8glib dürfte das 
zwischen 0.5kB und mehreren hundert kB liegen.

Oliver

von Rudolph (Gast)


Lesenswert?

Na, U8glib gefällt mir einfach nicht weil die Fonts einerseits 
komprimiert angelegt sind, jedes einzelne Zeichen muss gesucht und 
entpackt werden.

Und dann wird es auch noch 1 zu 2 Byte aufgeblasen für das DogXL160.
Also es geht nicht darum, dass 4 Pixel auf einmal geschrieben werden 
müssen, sondern um das Format und die Konvertierung.

Ich benutze im Moment einen Font den ich noch für das DogM128 hatte, 128 
Zeichen als zwei-dimensionales Arry, 8x8 Pixel -> 1k.
Wo steht das Zeichen '0'? array[0x30][0..7]
Die sich ständig wiederholenden gleichen Rechen-Operation um 1:2 Byte zu 
konvertieren finde ich einfach nur albern angesichts der mindestens 32k 
Flash die am Ende des Projektes übrig bleiben werden.

Zumal der Controller ja noch was besseres zu zun bekommen soll.

Also ganz klar mein "Problem". :-)

Vielleicht, mal schauen, vielleicht schreibe ich mir einen Konverter für 
den Controller der den Font im FLASH konvertiert und als .bin auf die 
SD-Karte schreibt. ;-)
Klingt doof, aber für mal-eben-kurz ein Shell Tool habe ich nichtmal 
mehr nen Compiler unter Windows und auch gar keinen Bock mehr drauf.

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.