www.mikrocontroller.net

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


Autor: Claudio H. (hedie)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: eideh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verstehen, was du jetzt machst.
EEPROM ansteuern
Fontdaten reinschreiben
Jetzige Funktionen aufs EEPROM umbauen.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Sascha Weber (sascha-w)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Claudio H. (hedie)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Sascha Weber (sascha-w)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Claudio H. (hedie)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm den ATMega162, hast du 16kB Flash.

Autor: Claudio H. (hedie)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: H.Joachim Seifert (crazyhorse)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.