Archiv verlassen und diese Seite im Standarddesign anzeigen : Ansteuerung von Grafikdisplay mit PCF8578/9 I2C
damaltor
06.09.2007, 19:56
Moin,
hat jemand von euch erfahrung mit grafikdisplays bzw. mit oben genannten grafik-display-controllern? scheint als wenn einer für die zeilen, der andere für die spalten zuständig ist. das ganze läuft über den i2c-bus.
hintergrund: ich habe bei pollin dieses display gefunden
http://www.pollin.de/shop/detail.php?pg=OA==&a=NTU4OTc4OTk=&w=OTg4OTk4&ts=40
und möchte gern eine art overkill-wecker auf basis eines avr mega8 basteln.
in die oberste zeile kommen datum und uhrzeit, die "Lx" symbole könnten anzeigen welche alarme aktiviert sind (alarmzeiten im eeprom?), die kleinen 7segmentanzeigen zeigen im wechseln stunden und minuten der ersten 6 alarme. die smbole... da fält mir noch wqas ein =)
dieses display hat diese controller verbaut (siehe downloads), ich vermute mal dass die symbole usw als einzelne pixel angesprochen werden. meine eigentlichen fragen deshalb:
wie bringe ich auf einem ganz "normalen" grafikdisplay mit diesem controller / diesen controllern ein bild bzw. eine anzeige zustande? wenn ich ein i2c-byte übertrage, wird dann das bild pixelweise aufgebaut? stehen die 8 bit dann für die ersten 8 pixel des displays? was muss ich überhaupt per i2c senden um ein bild/text/... anzuzeigen?
fluchtpunkt
06.09.2007, 20:11
der Beispielcode der beiliegt ist doch nun echt nicht soooo schwer zu verstehen...
damaltor
06.09.2007, 20:16
vermutlich nicht... ich kann nur überhaupt kein pascal ;) kann evtl jemand sagen wie ich einfach bloss einige pixel schwarz bzw weiss mache? meine jetzigen displays sind alle drei character-basiert, man muss also bloss den ascii code übertragen...
fluchtpunkt
06.09.2007, 20:31
zB schickst du fuer die oberen 7Seg-Anzeigen
01 2x xx
0x78, 0xE0, 0x88, 0x70, 0x0F, 0x0A, 0x00, 0x0A, 0x0D, 0x06, 0x, 0x, 0x, 0x, 0x, 0x
Das Display ist auch kein wirkliches Grafikdisplay
EDIT: soweit ich den Code richtig verstanden hab *g*
EDIT2: wennde mir eins mitbestellst und preisguenstig (<4.50E) zukommen laesst bastel ich dir mal einigen Beispielcode....
damaltor
06.09.2007, 20:47
fluchtpunkt komm mal wieder ins irc... qry wartet =)
dein angebot klingt fair, mir gehts in erster linie um die erklärung der oberen grafikzeile. die beiden controler sind eigentlich für echte grafikdisplays, darum vermute ich dass der obere teil grafik ist und unten die symbole als pixel verwendet werden.
fluchtpunkt
06.09.2007, 22:41
also ich habe erstmal versucht das ganze 7-Segment Gedoens zu decodieren.
/**
* upper line:
* num code 7654 3210
* 0 0x0F 0x0A 1111 1010
* 1 0x00 0x0A 0000 1010
* 2 0x0D 0x06 1101 0110
* 3 0x09 0x0e 1001 1110
* 4 0x02 0x0e 0010 1110
* 5 0x0b 0x0c 1011 1100
* 6 0x0f 0x0c 1111 1100
* 7 0x03 0x0a 0011 1010
* 8 0x0f 0x0e 1111 1110
* 9 0x0b 0x0e 1011 1110
*
*/
/**
* 0x78 0xE0 0x88 0x70 ---- 0xAB 0xCD 0xEF 0xGH 0xIJ 0xKL 0xMN 0xOP 0xQR 0xST 0xUV 0xWX
* =================== start code for 7-segment field
*
* A = Bits 7..4 of BCD number from lower line
* B = Bits 7..4 of BCD number from upper line
* C = Bits 3..1 of BCD number from lower line
* D = Bits 3..1 of BCD number from upper line
*
* nibble corresponds to display:
*
* (BD)(FH) (JL)(NP) (RT)(VX)
* (AC)(EG) (IK)(MO) (QS)(UW)
*
*/
nehmen wir mal folgendes Bild als Grundlage
http://upload.wikimedia.org/wikipedia/commons/4/4c/7Segment_24.gif
a = Bit 4
b = Bit 1
c = Bit 3
d = Bit 7
e = Bit 6
f = Bit 5
g = Bit 2
Ich hoffe das ist halbwegs verstaendlich.
fluchtpunkt
07.09.2007, 12:45
waaaaaaaa, nun hats meinen text geloescht, also alles noch mal in Kurzform
Displayzeile scheint eine PunktMatrix zu sein, 120 x 8(??)
0x78 0xE1 0x80 0x70 [Spalte 1 bis 40]
0x78 0xE2 0x80 0x70 [Spalte 41 bis 80]
0x78 0xE3 0x80 0x70 [Spalte 81 bis 120]
Bankaddressierung fehlt noch, das muss ich mir mal in Ruhe angucken.
Habe hier auch keinen passenden Compiler bzw Windows um das Testprogramm mal in Action zu sehen. Aus dem Code kann ich das nicht richtig extrahieren was da nun bei verschiedenen button clicks in welcher Reihenfolge passiert. Werd ich mich drum kuemmern wenn ich mal wieder mehr Zeit hab. So oder Mo vllt.
zur -5V erzeugung, ich werde wohl den 7660 nehmen. (62cent @reichelt)
die Ladungspumpe mit dem 555er ist wohl etwas billiger zu haben, vllt insgesamt 40 cent oderso.
damaltor
07.09.2007, 17:22
hm also schreibe ich die oben genannten bytes, und dann nacheinander 40 bytes für spaltenweise ausfüllung der grafikzeile? das ist ja einfacher als gedacht, es muss nurne möglichkeit her buchstaben in diese punktmatrixform zu bringen. kuhl.
die zeile ist relativ sicher eine punktmatrix, denn die beiden controller sind eigentlich für reine matrixdisplays gedqacht.
damaltor
27.09.2007, 10:07
kurzes update:
-> die oberste zeile ist wohl eine grafikleiste, allerdings sind alle fünf pixel etwa ein pixel abstand. man muss also irgendwie die eichen selbst "herstellen" und einen entsprechenden font entwickeln. schade,das frisst natürlich speicher. lässt sich aber vermutlich ganz gut automatisieren, une ist evtl auch für irgendwelche scroll effekte gut. ma sehn.
das pascal programm habe ich mir so gut es geht in c übersetzt - ich denke mal ich werde es ähnlich implementieren mit verschiedenen arrays für die daten die gesendet werden müssen.
die 7seg-anzeigen werden nicht ganz einfach denk ich mal, das ist noch einiges an experimentierarbeit.
die symbole müssen dekodiert werden (im pascal programm hat jede checkbox ein tag in dem die ramstelle und die bitmaske drinstehen - elegante lösung eigentlich. zwar hammer unübersichtlich, aber kurz und funktional.), dann werden sie in 2-3 bytes mit den 7seg-anzeigen gesendet... nicht ganz leicht aber sollte klappen.
fluchtpunkt: du hast ne pn...
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.