Hallo,
bisher steuerte ich meine LCD-Displays immer direkt im 4Bit Modus an den Portpins der ATMegas.
Beim letzten Kauf lag dem LCD-Modul 16x2 ein I2C Baustein mit dem PCF8574T bei.
Im Internet fand ich auch diesen Code zum Ansteuern des Displays.
CodeBox BascomAVR
A0-A2 habe ich auf Masse gelegt, damit ich die Adresse H40 verwenden kann. An SDA und SCL befinden sich jeweils 5K Widerstände gegen Ub. Wenn ich nun das Programm in den ATMega8 einspiele, blinkt der Cursor an Position 3. Das Display wird dunkel. (Die Hintergrundbeleuchtung geht aus). Mehr Effekt passiert nicht. Um das Programm und die Taktfrequenz zu kontrollieren, lasse ich dann in einer Endlosschleife eine LED im "SEKUNDENTAKT" blinken. Was diese auch erfolgreich tut.
Wenn ich die Adresse 40 ändere, passiert mit der Anzeige nichts. Daher gehe ich schon mal davon aus, dass diese korrekt ist. Ich habe mir schon das Datenblatt des PCF8574 mehrmals durchgelesen. Ich kann den Fehler nirgends entdecken. Hat das etwas damit zu tun, dass es ein PCF8574T ist? Ich finde nur Hinweise über den Unterschied zum A. Vielleicht gibt es ja jemanden, der sich damit besser auskennt als ich. Ich weiß mir zur Zeit keinen Rat mehr. Das Ganze ist auf einem Experimentierboard aufgebaut, so dass ich kein Foto der Platine posten kann.
Vielen Dank schon mal fürs Lesen.
Gruß LK
bisher steuerte ich meine LCD-Displays immer direkt im 4Bit Modus an den Portpins der ATMegas.
Beim letzten Kauf lag dem LCD-Modul 16x2 ein I2C Baustein mit dem PCF8574T bei.
Im Internet fand ich auch diesen Code zum Ansteuern des Displays.
CodeBox BascomAVR
$lib "Lcd_i2c.lib" 'ersetzt die Standard LCD Library $regfile = "m8def.dat" $crystal = 8000000 Const Pcf8574_lcd = &H40 'I2C Adresse Led Alias Portd.5 Config Led = Output Config Scl = Portc.5 'I2C SCL Pin Config Sda = Portc.4 'I2C SDA Pin Dim I As Byte Dim _lcd_e As Byte _lcd_e = 128 'LCD im 4-Bit Mode betreiben Cls 'loesche das LCD Display Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte Lcd "Hello Welt" 'String auf Display anzeigen Do Wait 1 Toggle LED Waitms 10 toggle LED loop End
A0-A2 habe ich auf Masse gelegt, damit ich die Adresse H40 verwenden kann. An SDA und SCL befinden sich jeweils 5K Widerstände gegen Ub. Wenn ich nun das Programm in den ATMega8 einspiele, blinkt der Cursor an Position 3. Das Display wird dunkel. (Die Hintergrundbeleuchtung geht aus). Mehr Effekt passiert nicht. Um das Programm und die Taktfrequenz zu kontrollieren, lasse ich dann in einer Endlosschleife eine LED im "SEKUNDENTAKT" blinken. Was diese auch erfolgreich tut.
Wenn ich die Adresse 40 ändere, passiert mit der Anzeige nichts. Daher gehe ich schon mal davon aus, dass diese korrekt ist. Ich habe mir schon das Datenblatt des PCF8574 mehrmals durchgelesen. Ich kann den Fehler nirgends entdecken. Hat das etwas damit zu tun, dass es ein PCF8574T ist? Ich finde nur Hinweise über den Unterschied zum A. Vielleicht gibt es ja jemanden, der sich damit besser auskennt als ich. Ich weiß mir zur Zeit keinen Rat mehr. Das Ganze ist auf einem Experimentierboard aufgebaut, so dass ich kein Foto der Platine posten kann.
Vielen Dank schon mal fürs Lesen.
Gruß LK