I2C-LCD-Lib Probleme

OP #722965
Lesenswert?

Hallo
Kennt jemand diese I2C-LCD-Lib von http://computerheld.de/i2clcd/
i2clcd-v01.
In dieser Lib kannn man die Zuordnung der Daten und Steuerpin von LCD zu 
PCF8574 frei wählen. Legt man die Pin so auf
PCF P0 -- LCD D4
    P1 --     D5
    P2 --     D6
    P3 --     D7
dann funktioniert es, legt man sie jedoch so auf
    P0 --    D7
    P1 --    D6
    P2 --    D5
    P3 --    D4
dann sieht es so aus als würde das Display initialisiert(es wird 
gleichmässig grau) aber es kommen keine Zeichen. Die Hardwarezuordung 
ist natürlich jeweils ident mit dem Eintrag in der *.h Datei.
Wie man die Steuerpin den restlichen PCF-Pin zuordnet ist ohne 
Bedeutung.
Kennt jemand diesen Fehler oder habe ich etwas übersehen oder überlesen.
Wenn man die Suche bemüht muss man feststellen das ein LCD über I2C 
ansteuern nicht sehr gängig ist.
Hubert
Gast #1736232
Lesenswert?

Nachtrag:

Es liegt wirklich an der Verdrahtung! Geht nur so, wie im header steht!
Ich vermute mal, dass es aus der Shift-Register-Natur des PCF8574 
kommt... Die Pins sind halt nicht auf einen Schlag gültig, deswegen ist 
die Reihenfolge wichtig!

Gruß,
Manuel
#1736752
Lesenswert?

Hubert G. schrieb:
> mein Junior meinte, auf
> dieses Problem angesprochen, ohje, nimm einen größeren Kontroller.

Was denn, noch größer?

Der Mega32 hat doch Pins bis zum Abwinken, da kanns doch an 6 Pins für 
das LCD nicht scheitern.


Prinzipiell muß es aber auch über I2C gehen.
Warum es bei Dir nicht geht, kann ich Dir nicht sagen. Dazu müßte ich 
Deinen Code sehen, der die LCD-Pins definiert und wie er sie verwendet.


Man kann beim AVR-GCC sehr schön einzelnen Bitvariablen auf IO-Pins 
legen. Leider wird das nur sehr wenig genutzt und dafür sehr 
umständlicher und damit fehlerträchtiger Code verwendet.
Hier mal ein einfaches Beispiel für beliebige Pinzuordnung:
http://www.mikrocontroller.net/attachment/30300/lcd_drv.zip

Man ist natürlich nicht auf echte IO-Pins beschränkt, sondern kann auch 
virtuelle IO-Pins im SRAM definieren, die dann per I2C oder SPI gesendet 
werden.

Ob die gesparten 4 Pins beim Mega32 (32 IO-Pins) aber soviel ausmachen, 
bezweifle ich.
Bei nem Tiny25 kann I2C (2 Pins) oder SPI (3 Pins) durchaus helfen.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren