Forum: Mikrocontroller und Digitale Elektronik GLCD Schriftarten in externes EEPROM auslagern.


von C. H. (hedie)


Lesenswert?

Hallo

Ich bin derzeit gerade dabei, mit einem Grafischen Display zu spielen.

Dieses hat 128x64 pixel und ist blau weiss...

Zur ansteuerung verwende ich folgende Funtionen: 
Beitrag "GLCD Routinen ( KS0108, HD61202 )"

Dies läuft soweit einwandfrei....

Nun wollte ich eigene Fonts erstellen und aufs Display übertragen... 
Auch dies hat geklappt... Jedoch haben diese Fonts einen nachteil... Sie 
verbrauchen ziemlich viel Flash...

Ein Verdana 10 punkt Font verbraucht ca 4kb...

Nun wollte ich fragen, ob ich die Fonts auch in z.B. ein I2C EEPROM 
auslagern kann...

Dass es irgendwie gehen muss, ist klar doch wie macht man das am besten?

Danke schonmal

von eideh (Gast)


Lesenswert?

Verstehen, was du jetzt machst.
EEPROM ansteuern
Fontdaten reinschreiben
Jetzige Funktionen aufs EEPROM umbauen.

von Oliver (Gast)


Lesenswert?

Wenn du Platz und Geld für ein externes EEPROM hast, hast du auch Platz 
und Geld für einen AVR mit mehr Flash. Nur der Lerneffekt ist damit halt 
nicht so groß.

Oliver

von Hannes L. (hannes)


Lesenswert?

Oliver schrieb:
> Wenn du Platz und Geld für ein externes EEPROM hast, hast du auch Platz
> und Geld für einen AVR mit mehr Flash. Nur der Lerneffekt ist damit halt
> nicht so groß.
>
> Oliver

Dafür stehen im größeren AVR aber die Bitmuster der Zeichen sofort (über 
Z-Pointer) zur Verfügung und müssen nicht jedesmal beim externen EEP 
mühsam seriell adressiert werden. Ist aber Ansichtsache.

...

von Sascha W. (sascha-w)


Lesenswert?

Claudio Hediger schrieb:
> Ein Verdana 10 punkt Font verbraucht ca 4kb...
aber nur wenn du von CHR(32) bis CHR(255) alles drin lässt!

Sascha

von C. H. (hedie)


Lesenswert?

Ok also in den entsprechenden Funktionen wird mittels

pgm_read_byte()

gelesen....

Somit müsste ich eigentlich nur die Funktion pgm_read_byte zb in 
read_eeprom() umbenennen.

Der Rückgabe wert muss bei der Funktion ja lediglich ein Byte des 
EEPROMs an der übergebenen Adresse sein....

Hab ich das so richtig verstanden?

von Sascha W. (sascha-w)


Lesenswert?

Claudio Hediger schrieb:
> Ok also in den entsprechenden Funktionen wird mittels
>
> pgm_read_byte()
>
> gelesen....
>
> Somit müsste ich eigentlich nur die Funktion pgm_read_byte zb in
> read_eeprom() umbenennen.
du meinst den Aufruf durch diesen ersetzen
Ja - wenn die Parameter die selben sind

> Der Rückgabe wert muss bei der Funktion ja lediglich ein Byte des
> EEPROMs an der übergebenen Adresse sein....
>
> Hab ich das so richtig verstanden?
Ja

aber ich denke das wird schnarchlangam wenn du nicht gerade ein 
parallels EEProm nimmst.

Sascha

von H.Joachim S. (crazyhorse)


Lesenswert?

im Prinzip ja.
Allerdings wird die Zugriffszeit deutlich länger.
Je nach Eeprom musst du 2 oder 3 Byte schreiben und ein Byte lesen. Je a 
8 SCL-Takte.
Ich würde auch einen Typ mit grösserem Flash verwenden (falls möglich). 
Welchen benutz du denn jetzt?

von C. H. (hedie)


Lesenswert?

H.joachim Seifert schrieb:
> Ich würde auch einen Typ mit grösserem Flash verwenden (falls möglich).
> Welchen benutz du denn jetzt?

90s8515

von H.Joachim S. (crazyhorse)


Lesenswert?

Nimm den ATMega162, hast du 16kB Flash.

von C. H. (hedie)


Lesenswert?

H.joachim Seifert schrieb:
> Nimm den ATMega162, hast du 16kB Flash.

Danke für den tipp... Vom AT90S8515 hab ich aber eben noch 30 Stk 
hier... mal für ca 10 Euro bei ebay gekauft....


zudem hab ich die Hardware für den 8515 bereits aufgebaut...

Ich werde mich also mit weniger schriften begnügen aber danke

von Karl H. (kbuchegg)


Lesenswert?

Claudio Hediger schrieb:
> H.joachim Seifert schrieb:
>> Nimm den ATMega162, hast du 16kB Flash.
>
> Danke für den tipp... Vom AT90S8515 hab ich aber eben noch 30 Stk
> hier... mal für ca 10 Euro bei ebay gekauft....

Was spricht dagegen, einen davon nur zur Ansteuerung des GLCD 
abzustellen? Als eine Art Terminal sozusagen?

von H.Joachim S. (crazyhorse)


Lesenswert?

Den 162 kannst du statt des 8515 einsetzen, pinkompatibel. Glaub ich 
zumindest.
Ansonsten kannst du natürlich trotzdem das externe Eeprom dranhängen :-)

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.