Ein 'A' beginnt also bei Index 0, ein 'B' bei Index 6 und ein 'C' bei
Index 12.
Wie ist jetzt der Ansatz, wenn ich eine write, print, etc. Routine für
das Display schreiben will.
write("AC");
Wie komme ich vom ASCII Zeichen nun auf meinen Index in der Tabelle?
(Ich kann ja schlecht 127 if Abfragen schreiben, wie if ('A') then Index
= 0; etc.)
Ich hoffe ich hab die Frage verständlich formuliert und freu mich
Antworten und Denkanstöße,
lieben Gruß,
Chris
Deine Tabelle sollte bei Index 0 beginnen und 128 Zeichen haben.
Und beim Zugriff brauchste Multiplikation mit 6, wenn deine Zeichen
jeweils 6 Byte umfassen.
Erich schrieb:> Deine Tabelle sollte bei Index 0 beginnen und 128 Zeichen haben.>> Und beim Zugriff brauchste Multiplikation mit 6, wenn deine Zeichen> jeweils 6 Byte umfassen.
Hallo Erich,
ah, das klingt logisch. Jedes ASCII Zeichen dann mit "Index = 'A' * 6;"
errechnen. Danke für den Tipp!
Harry L. schrieb:> // Font 6x8 Pixel.> const unsigned short Zeichen[][6] => {> {0x7C,0x12,0x11,0x12,0x7C,0x00}, // 'A' ASCII 65 (0x41)> {0x7F,0x49,0x49,0x49,0x36,0x00}, // 'B' ASCII 66 (0x42)> {0x3e,0x41,0x41,0x41,0x22,0x00} // 'C' ASCII 67 (0x43)> };
Kannst mir erklären, welchen Vorteil dieses Array für die Font-Tabelle
hat? Blicke da jetzt nicht durch.
Chris schrieb:> Erich schrieb:>>> Deine Tabelle sollte bei Index 0 beginnen und 128 Zeichen haben.>>>> Und beim Zugriff brauchste Multiplikation mit 6, wenn deine Zeichen>> jeweils 6 Byte umfassen.>> Hallo Erich,>> ah, das klingt logisch. Jedes ASCII Zeichen dann mit "Index = 'A' * 6;"> errechnen. Danke für den Tipp!
Ich habs dir doch vorgekaut:
Beitrag "Re: DOGL128-6 von Font-Tabelle auf ASCII"
Nimm nen 2-dimensionales Array und fertig!
Überlas doch dem Compiler das Rechnen!
Chris schrieb:> Kannst mir erklären, welchen Vorteil dieses Array für die Font-Tabelle> hat? Blicke da jetzt nicht durch.
Der Zugriff auf den Buchstaben 'B' geht so:
Chris schrieb:> Jedes ASCII Zeichen dann mit "Index = 'A' * 6;"
Mal abgesehen davon, dass die Formel für jedes ASCII-Teichen das selbe
Ergebnis bringt, ist schon der Ansatz der Formel falsch. Mit ein wenig
Nachrechnen kommst du da schnell drauf.
Chris schrieb:> Kannst mir erklären, welchen Vorteil dieses Array für die Font-Tabelle> hat? Blicke da jetzt nicht durch.
Es ist ein zweidimensionales Array: der erste Index gibt den Buchstaben
an, der zweite Index ist ein einzelnes Byte dieses Buchstabens.
Wenn du dann ein Zeichen ausgeben willst, dann geht das etwa so:
Da übrigens das letzte Byte bei dir immer 0x00 ist, kannst du dir das
sparen und die ganze Nummer als 5 Byte Array aufbauen. Die 0x00
schreibst du in deiner Ausgangsroutine.
Lothar M. schrieb:> Wenn du dann ein Zeichen ausgeben willst, dann geht das etwa so:
Das kann ich nachvollziehen, da wär ich nicht draufgekommen. Vielen Dank
für Deine Mühe! Setz es gleich um :-)
Chris schrieb:> Da es keine Zeichentabelle enthält habe ich eine Zeichentabelle> definiert
Hier in diesem Forum gibt es reichlich Beiträge, die sich mit den Themen
Fonts und Grafik-Displays befassen. Selbst die "Lernbetty" hat vor etwa
10 Jahren ein Grafik-LCD und Ausgabefunktionen nebst Fonts gehabt.
Du brauchst also nur etwas in diesem Forum zu suchen, um dir deine
Fragen beantworten zu können und sehen zu können, wie sowas bereits von
anderen gemacht wurde.
W.S.
W.S. schrieb:
Servus W.S.,
> Du brauchst also nur etwas in diesem Forum zu suchen, um dir deine> Fragen beantworten zu können und sehen zu können, wie sowas bereits von> anderen gemacht wurde.
ich hätte oben natürlich dazuschreiben müssen, dass ich seit Tagen mir
die schon vorhandenen Libraries reingezogen habe. Leider habe ich keine
zum Laufen gebracht und so manchen Code auch nicht verstanden.
Wollte keine unnötigen Fragen stellen, sorry.
Chris schrieb:> ich hätte oben natürlich dazuschreiben müssen, dass ich seit Tagen mir> die schon vorhandenen Libraries reingezogen habe. Leider habe ich keine> zum Laufen gebracht und so manchen Code auch nicht verstanden.
Ich vermute mal, daß du mental auf dem falschen Dampfer bist. Wenn man
vorhat, ein Grafikdisplay zu benutzen, dann ist es weitaus hilfreicher,
zu lesen um die Prinzipien verstehen zu lernen als krampfhaft nach
fertigen Libs zu suchen, die hoffentlich auf das eigene Vorhaben passen
ohne daß es irgendwelcher Nacharbeiten bedarf. Entsprechendes gilt auch
für alle anderen Vorhaben. Also verstehen lernen, damit man es dann
selber kann.
Den Spruch jemandem einen Fisch zu geben versus ihn fischen zu lehren
kennst du sicherlich.
Ich vermute mal, daß du zunächst vorhast, das Grafikdisplay als reines
Textdisplay zu benutzen. Deshalb die Beschränkung auf einen Font mit
durchgängig gleicher Zeichenbreite und -höhe.
Aber so ein Grafikdisplay kann weitaus mehr, so daß man recht bald zum
einen Fonts verschiedener Größe und Aussehen und mit variabler
Zeichenbreite als auch freie Positionierung der Zeichen auf dem Display
haben will - selbst auf einem noch kleineren Display als deinem, siehe
Bild von meiner Eigenbau-Lötstation. Dazu ist es aber erforderlich, daß
du in der Lage bist, dir eigene Gedanken darüber zu machen, wie man so
etwas macht.
W.S.
W.S. schrieb:
Sehr schönes Bild. Informationen gut umgesetzt.
> Ich vermute mal, daß du zunächst vorhast, das Grafikdisplay als reines> Textdisplay zu benutzen. Deshalb die Beschränkung auf einen Font mit> durchgängig gleicher Zeichenbreite und -höhe.
Nein. Ich bau mir einen Joystick für eine selbstentwickelte Anwendung.
Dazu sind im Display einigen Anzeigen notwendig. XYZ Koordinaten in
größerer Schrift, Rahmen drum, gespeicherte Punkte, Schrittmotor
Auflösung, etc. Will es also schon als Graphikanzeige nutzen.
Der Eindruck täuscht, dass ich nicht selbst in die Tiefe gehen will. Nur
wenn eine Library schon fertig ist, warum nicht nutzen. Aber ich schaff
das schon. Schließlich ist doch genau dafür dieses Forum da, um sich
einen Gedankenanstoß zu holen, wenn ich beim alleine basteln wieder
einmal in einer Sackgasse bin.