PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD über Pcf8574P an Rn mega128funk



Kalli01
15.08.2010, 19:01
Hallo

Ich möchte eine LCD Anzeige über I2C an das RN mega128funk anschließen.
Dazu habe ich das Display wie hier (http://www.mcselec.com/index.php?option=com_content&task=view&id=82&Itemid=57) beschrieben an den PCF8574P angeschlossen.
Die Scl Leitung habe ich an Portd.0 und die Sda an Portd.1 angeschlossen.
Die Brücke auf der Rückseite des mega 128 ist geschlossen. (Pullup Widerstände)

Hier mein aktuelles Programm:

$regfile = "m128def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32

$crystal = 16000000

$lib "Lcd_i2c.lib"

Config I2cdelay = 1

Const Pcf8574_lcd = &H40

Config Scl = Portd.0
Config Sda = Portd.1
Dim _lcd_e As Byte
_lcd_e = 128


Config Lcd = 16 * 2

I2cstart

Cls

Wait 2
Cursor On Blink
Wait 10
Shiftcursor Right
Shiftcursor Right
Shiftcursor Right
Wait 2
Cls
Locate 1 , 1
Lcd "Hello world."
Wait 5

Do
Wait 5
Locate 1 , 1
Lcd "es geht"
Loop
End


Nach dem Einschalten blinkt in beiden Zeilen das erste Kästchen. Dann springt der Curser in beiden Zeilen um 3 Kästchen nach rechts.
Text wird keiner angezeigt. Die erste Zeile bleibt schwarz.

Also funktioniert doch das Programm bis zum Anzeigen des Textes.
Ich weiß nicht was da falsch sein soll. Hat jemand eine Idee?

vistauser
15.08.2010, 19:40
Hallo Kalli01,
ich habe das Addonboard vom NetIO von Pollin. Da ist auch ein PCF 8574
drauf und ich wuerde damit ein 2*16 LCD testen. Kannst du mir bitte mitteilen, wie du das LCD an den PCF angeschlossen hast? Ich habe mit I2C noch nie ein LCD betrieben.

Danke im Voraus und noch einen schönen WE-Ausklang
Vistauser

Kalli01
15.08.2010, 19:54
Hallo vistauser

Schau mal auf dieser Seite (http://www.mcselec.com/index.php?option=com_content&task=view&id=82&Itemid=57), da gibt es ein Archiv (http://www.mcselec.com/index.php?option=com_docman&task=doc_download&gid=62) mit einem PDF. Darin wird erklärt wie man das Display anschließen muss.
Du musst auch die Lcd_i2c.lib in das lib Verzeichnis von Bascom kopieren.

Bei mir funktioniert es aber nicht richtig.

vistauser
15.08.2010, 20:13
Danke Kalli01,

ich werde das mit deinen Informationen mal versuchen und auch dein Programm testen, wenn mit Erfolg, melde ich mich.

vistauser
16.08.2010, 11:48
Hallo Kalli01,

dein Programm funktioniert prima, der Link von dir ist super.
Habe dein Programm nur etwas an meine Umgebung angepasst.
Versuche das mal anzuhängen.

Freundliche Grüße
vistauser

Kalli01
16.08.2010, 15:55
Hallo vistauser
Das ist gut

Ich habe es jetzt nochmal neu aufgebaut.
ATmega8 -- PCF8574 -- 27*4 LCD

Dann habe ich das Programm von dir verwendet, aber es funktioniert nicht.

Ich kann den Cursor blinken lassen und hin und her schieben.
Dann kann ich einzelne Zeichen am Display anzeigen, indem ich die Pins am PCF8574 manuell setze.

Aber mit dem LCD-Befehl bleibt die Zeile schwarz.

Kannst du mal einen Screenshot von den Lock und Fuse Bits posten.
Ich weis einfach nicht was ich falsch mache.

MfG

vistauser
16.08.2010, 16:31
Hallo Kalli01,
jammerschade, dass es bei dir erstmal nicht flutscht. Dass du nicht PD6 und PD7 verwendest wie ich kann wohl der Grund sein. PD0 und PD1 sind ja RXD u. TXD. Die Fuses hängen hier dran.

Viel Erfolg

Kalli01
16.08.2010, 17:39
Angeschlossen habe ich es auch an PD6 und PD7. Es tut sich auch was am Display, aber das LCD "" klappt nicht.
Kannst du mal das Hex File von dem Programm "LCD_PCF8574.bas" posten. Dann spiel ich das mal drauf.

vistauser
16.08.2010, 18:16
Hallo Kalli01,
kriegste beide, da ich es für ein 20 * 4 Display compiliert habe.

mfg

P.S.: hast du wirklich ein 27 * 4 Display? Dann geht das deswegen nicht?
Kuck dir mal das Basic-Demo Programm von dem Erzeuger der Lib an.
Da ist nur von 16 und 20 Char. / Zeile die Rede.