Moin Moin

Die Zeichen müssen, um mit deiner routine richtig dargestellt zu werden, liegen und quasi nach links gekippt sein, richtig?
Äh nein ?
Also im Prinzip ist es ganz einfach :
Ich hab einen großen Haufen Speicher, da liegen die Buchstaben drin.
Im Fall von 5x8 sollten sie so angeordnet sein :
Die ersten 5bit sind die erste Zeile vom ersten Zeichen, die zweiten 5 die Zweite Zeile ... nach 8 Zeilen kommt die erste Zeile vom zweiten Zeichen.
Die Zeilen sind so aufgebaut da ich sie 1:1 ans Display schicken kann.
Sprich das least significant bit (LSB) ist das erste bit.
Da kommt daher weil der jedes byte im Speicher sind ja 8 Pixel in einer Zeile.
Wenn wir die jetzt von links nach rechts durchgehen kommt zuerst das LSB und dann am Ende das MSB.
Siehe Datasheet für den lc7981 Tabelle auf Seite 15

Da is für mich nix mit kippen erkennbar.
Außer du hältst dein Display falschrum.


Die Zeichenhöhe und Breite sind ja im Befehl von entscheidender Bedeutung. Ist doch richtig, dass sie immer gleich oder größer dem Zeichen sein sollen.
Und das ist totaler Käse.
Da die Größe benutzt wir um die entsprechenden bits im Speicher zu finden,
sollte sie vllt. passen ?
Siehe meine Erklärung oben.
Wenn du da ein bit daneben liegst stimmen alle Offsets nimmer.
Pixelsalat.
Für 5x8 wäre der richtige Aufruf :
lcd_plot_text_P(10,45,PSTR("einfach!!!"),4,7,font_ 5x;
Wir zählen nämlich von 0 an.
Siehe die Notizen zu lcd_plot_btimap in der Dokumentation.


Es kann sein das dein 5x8 font so gepackt worden ist,
dass ein zeichen 8 x 8 bit benutzt (sprich 3 bit überlänge).


Das Problem im Textmodus kann ich grade, mangels Hardware, irgendwie nicht nach vollziehen.
Müsste ich mir nacher mal einen Testaufbau zusammen löten und anchschauen,
außer jemand hat ein Photo. (Und irgendwo einen ATmega32 ausbauen.)
Weil soweit ich weiß ging der Textmodus bei mir relativ problemlos, kann aber sein dass ich da irgendwelche Seiteneffekte einfach ignoriert habe.

Gruß
Sebastian