Forum: Mikrocontroller und Digitale Elektronik 5x7 LED - ASCII Charset


von Ebi (Gast)


Lesenswert?

Hallo Leute

Ich versuche mittels 8 Stück 5x7 LED-Matrizen eine Anzeige aufzubauen 
die anhand von Tastatureingabe eben jene Zeichen (Buchstaben+Zahlen) 
darstellt. Das ganze sollte wohl so funktionieren, dass ich über einen 
.db-Befehl einen kompletten Zeichensatz in den SRAM speichere und dann 
über den Z-Pointer bei Bedarf hereinlade und dann darstelle?

Nur habe ich Zeichensätze für 5x8 bis 7x12 gefunden - nur keine solchen. 
Hat da wer evtl so einen Zeichensatz?

Und zweitens - bin mit Pointern nicht so bewandert - aber sieht das dann 
so in etwa aus?

Und drittens - ich habe das ganze so standardmäßig mit Zeilen 
multiplexen und Spalten Schieberegister aufgebaut (ATMega16, 74HC595, 
74HC259) wie setz ich so ein Zeichen in so einem Zeichensatz überhaupt 
ein?

Danke für die Hilfe

Greetz Ebi

von Peter D. (peda)


Lesenswert?

Ebi wrote:

> Nur habe ich Zeichensätze für 5x8 bis 7x12 gefunden - nur keine solchen.

Kannst 5*8 nehmen, es müssen nur ein paar Kleinbuchstaben hochgesetzt 
werden (g,p,q,ß,y).

Der Zeichensatz wird direkt aus dem Flash ausgegeben (LPM), SRAM ist 
Unsinn.


Peter

von Ebi (Gast)


Angehängte Dateien:

Lesenswert?

Okay - ja klar Flash - da hab ich mich vertan in aller Eile...danke für 
die Antwort.

Ja gut da hab ich dann diese Charsets - die sind im Anhang.

Und wie füg ich die dann in meinem Programm ein bzw. wie stelle ich die 
Kleinbuchstaben die du gesagt hast hoch?

von Peremptor (Gast)


Lesenswert?

Hallo,

mal unabhängig von Programmiersprachen (und dem inzwischen 5 Jahre alten 
Thread) wüsste ich doch mal ganz gerne, wie das nun funktioniert...

Wie kommt man von

0x7E, 0x11, 0x11, 0x11, 0x7E  (hex)
126   17    17    17    126   (dez)
1111110 0010001 0010001 0010001 1111110 (bin)

auf das "A" (5x7), welches in Hex dargestellt doch 0x41 ist?!
(oder aus der obigen RAR-Datei: 0x00,0x04,0x0A,0x0A,0x1F,0x11,0x00,0x00)


Irgendwelche Freaks wissen die Antwort und stellen uns überall passende 
Charsets zur Verfügung 
(http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1200398529/16#16), 
vielleicht könnte mal einer von denen seine Gedankengänge für Newbies 
erklären?

Ich wäre sehr dankbar (und alle anderen, die wegen dieses Problems 
jemals Google betätigt haben, wahrscheinlich auch).

LG

Peremptor

von Sebastian (Gast)


Lesenswert?

Ist halt ein ziemlich eckiges "A". Der Trick an der Sache: Die Bits sind 
im Beispiel senkrecht angeordnet, und zudem von unten nach oben. Das A 
sieht also folgendermaßen aus:

0 x x x 0
x 0 0 0 x
x 0 0 0 x
x 0 0 0 x
x x x x x
x 0 0 0 x
x 0 0 0 x

Damit man die Form besser erkennt, sind die 1en als "x" dargestellt.

von Karl H. (kbuchegg)


Lesenswert?

Peremptor schrieb:

> Wie kommt man von
>
> 0x7E, 0x11, 0x11, 0x11, 0x7E  (hex)
> 126   17    17    17    126   (dez)
> 1111110 0010001 0010001 0010001 1111110 (bin)
>
> auf das "A" (5x7), welches in Hex dargestellt doch 0x41 ist?!

0x41 ist der Index in die Tabelle.
Mit dem Wert gehst du also in die Tabelle, kriegst (hier) 5 Bytes raus 
und die 1 Bit in diesen 5 Bytes sagen dir, welche LED einzuschalten sind 
damit dein Hirn aus dem Muster der leuchtenden LED ein 'A' macht.

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.