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
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
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 ...
Ping Pong: D.h, man schiebt über SPI einmalig bei Programmstart einen Zeichensatz in das Display hoch ?
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
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.
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
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
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.
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.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.