-         

Ergebnis 1 bis 9 von 9

Thema: Ansteuerung von Grafikdisplay mit PCF8578/9 I2C

  1. #1
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913

    Ansteuerung von Grafikdisplay mit PCF8578/9 I2C

    Anzeige

    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...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?
    kleinschreibung ist cool!

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2004
    Alter
    33
    Beiträge
    165
    der Beispielcode der beiliegt ist doch nun echt nicht soooo schwer zu verstehen...

  3. #3
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913
    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...
    kleinschreibung ist cool!

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2004
    Alter
    33
    Beiträge
    165
    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....

  5. #5
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913
    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.
    kleinschreibung ist cool!

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2004
    Alter
    33
    Beiträge
    165
    also ich habe erstmal versucht das ganze 7-Segment Gedoens zu decodieren.

    Code:
    /**
     * 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

    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.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.12.2004
    Alter
    33
    Beiträge
    165
    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.

  8. #8
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913
    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.
    kleinschreibung ist cool!

  9. #9
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913
    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...
    kleinschreibung ist cool!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •