I2C-Text-Displayansteuerung mit PCA9555 o.ä.

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • I2C-Text-Displayansteuerung mit PCA9555 o.ä.

      Es gibt ja zur Displayansteuerung die lcd_i2c.lib und die YLcd_i2c.lib. Beide verwenden dabei den PCF8574. Wobei die lcd_i2c.lib das Backlight nicht berücksichtigt, dies also separat geschaltet werden muss.


      Da ja aber in Verbindung mit Displays oft genug auch Taster benötigt werden wäre es ja sinnvoll dies im PCA9555 oder ähnlicher 16-Kanal-Porterweiterung (Port0 für Display einschl. Backlight +Port1 für Tasten und/oder LEDs) zu verbinden statt dafür 2 ICs zu verwenden. Die Ein/Ausgabe von Tastern/LEDs ist ja einfach aber wie müsste eine Lib aussehen, die die Bascom-LCD-Befehle auf den PCA9555, möglichst frei konfigurierbar, umsetzt? Hat das schonmal jemand versucht oder kennt jemand eine derartige Lib?


      Gruß Harald
      Wem ich nicht ausdrücklich widerspreche, der darf das bis auf Widerruf als "Gefällt mir" verstehen.
    • Frei konfigurierbar muss nicht unbedingt sein. Die Anordnung von Ywrobot_LCD_i2c.lib ist in Bezug auf den PCA9555 schon OK, da dort ja alle Ein/Ausgänge auf einer Seite sind. Allerdings müsste doch in der Lib auch noch der Port 0 oder 1 zugewiesen werden. Beim PCF8574 gibt es ja nur einen, da ist das nicht erforderlich.

      Da ich aber von ASM und libs wenig bis keine Ahnung habe brauche ich da ein bisschen mehr Hilfe. Also ich würde natürlich die Variable in Zeile 82 und im Bascomprogramm anpassen, aber was meinst Du mit "Das Command Byte hinzu..."?

      Schon mal Danke

      Harald
      Wem ich nicht ausdrücklich widerspreche, der darf das bis auf Widerruf als "Gefällt mir" verstehen.
    • Die _temp2 müsste nur angepasst werden wenn die Pinbelegung anders wird. Der einfachheit halber nehmen wir mal Port0 mit der selben Belegung. Dann müste nur das i2csend auseinanderklamüsert werden:

      Quellcode

      1. oben im Code (vor dem Lcdinit)
      2. i2cstart
      3. i2cwbyte pcf8574_LCD 'Adresse des 9555
      4. i2cwbyte 6 'Command: Config port0
      5. i2cwbyte 0 'alle Output
      6. (i2cwbyte xyz 'benötigtes Config Port1 )
      7. i2cstop
      8. in der lib, anstelle 82
      9. *BASIC: i2cstart
      10. *BASIC: i2cwbyte pcf8574_LCD 'Adresse des 9555
      11. *BASIC: i2cwbyte 2 'Command: Output port0
      12. *BASIC: i2cwbyte _temp2 'von der lib generierte Daten
      13. *BASIC: i2cstop
      Alles anzeigen
      PS Unbedingt die lib umbenennen. (Sie wird dann nicht mehr mit dem 8574 arbeiten)