HD44780 an PCF8574

Persönliche Seite #2274173
Lesenswert?

Ich habe hier erst im Netz eine kleine Lib entdeckt, welche ein 
Textdisplay über einen PCF8574 ansteuern soll.
http://scriptkiller.de/de/a19/computer_elektronik/mikrocontroller/hd44780_display_via_pcf8574_i%C2%B2c_io-expander/

Ich habe nun ein 8x2 Anag Vision 0802 Display dran ("KS0066 or 
equivalent"), welches mit der Fleury-Lib und eigenem Code ohne Probleme 
direkt an Portpins funktioniert. Das Display kommt nur nicht mit klar, 
wenn die Pins D0 bis D3 im 4 Bit Mode auf 0 liegen, müssen floaten.

Die Lib verwendet eine i2c.h, welche ich nicht finden konnte, so hab ich 
einfach die Ausgabe Funktion etwas angepasst:
1
void lcdOut(unsigned char c) {
2

3
  //i2cMasterSendNI(LCD_I2C_ADDR, 1, &c);
4
  set_pcf8574(0x4e, c);
5

6
}
7

8
char set_pcf8574(unsigned char address, unsigned char val) {
9
  unsigned char ret = i2c_start(address+I2C_WRITE);
10
  if(ret) {
11
    i2c_stop();
12
    return -1;
13
  } else {
14
    i2c_write(val);
15
    i2c_stop();
16
  }
17
  return 0;
18
}

Die PCFs (sind 6 Stück auf der Platine) funktionieren alle ohne 
Probleme.

Das Display kommt anscheinend auch über init hinaus, da die schwarzen 
Balken verschwinden, allerdings mehr tut sich auch nicht. Ob ein 
lcd_clear() funktioniert, kann ich nicht sagen, da es nichts zu clearen 
gibt.

Hier der Ausschnitt meiner main(), welcher relevant ist:
1
  i2c_init();
2
  sei();
3
  lcdInit();
4
  lcdClear();
5
  lcdPrintString((unsigned char *)"test");
Wenn ich den typecast nach unsigned char * für die PrintString weglasse, 
dann meckert er wegen "differ in signedness", tut sich aber auch nichts 
am Display.

Im Anhang die lcd.c und lcd.h aus meinem Projektordner.
http://www2.produktinfo.conrad.com/datenblaetter/175000-199999/183369-da-01-en-LCD_Modul_8x2_Zeichen.pdf 
Hier das Datenblatt des Displays

Ich hoffe ihr könnt mir da helfen!
Angehängte Dateien:

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