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
Hi! Na da kommt mir ja was bekannt vor :-) Gugst Du hier: http://www.roboternetz.de/phpBB2/viewtopic.php?t=35991 Gruß Rick
Es hätte ja sein können das hier jemand die Lösung des Problems kennt. I2C-LCD sind ja wirklich nicht sehr aktuell, mein Junior meinte, auf dieses Problem angesprochen, ohje, nimm einen größeren Kontroller. Hubert
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
Manuel schrieb: > 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! Das ist Quatsch. Der PCF8574 kann nicht um ein Bit schieben, wie ein 74HC164. Alle 8 Bits werden mit dem ACK gleichzeitig gesetzt. Peter
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.