Willkommen in unserer Community

Werde Teil unserer Community und registriere dich jetzt kostenlos ...

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Suche $include "_2704_i2c.bas"

Dieses Thema im Forum "Programmierung und Bascom IDE" wurde erstellt von Berty, 6. Februar 2018.

  1. Berty

    Berty Neues Mitglied

    Registriert seit:
    5. Februar 2018
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo,

    ich bin neu im Forum, weil ich mit der Ansteuerung von I2C-Displays unter Bascom nicht klarkomme. Die Bascom-Lib lcd_i2c nützt mir nichts, da meine PCF-Pinbelegung auf dem Modul abweicht. Ich möchte wissen, an was für exotische Displays die Autoren wohl gedacht haben. Meine Pinbelegung ist die übliche:

    'PCF8574

    'P7 = D7

    'P6 = D6

    'P5 = D5

    'P4 = D4

    'P3 = 1 = backlight on / 0 = backlight off

    'P2 = E

    'P1 = RW

    'P0 = RS



    Mit großem Interesse habe ich die Beiträge zur alternativen Ansteuerung von I2C-LCD verfolgt. Cassio machte etliche Vorschläge, die konnte ich aber nicht nutzen, da ich die benötigten Include-Dateien wie z.B. $include "_2704_i2c.bas" beim besten Willen nicht finden konnte. Meine Frage: Wo kann ich sie herunterladen?

    Mit freundlichen Grüßen

    Berty
     
  2. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.789
    Zustimmungen:
    40
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    Hmm... AN #118 hilft Dir nicht weiter?
    Zu Cassios Projekt kann ich nichts (mehr) sagen, ist schon 'ne Weile her, und war meiner Erinnerung nach 'n umfangreicherer Thread.
    Ist das irgendwo standardisiert? Der PCF8574 ist doch einfach nur ein I²C-zu-parallel-Converter (quasi-parallel -> Jeder "Ausgang" kann entweder auf Gnd geschaltet werden, oder über eine 100µA-Stromquelle auf Vcc. Gelesen wird der tatsächliche Zustand, der ggf extern gegen die Pullup-Quelle auf Gnd gezogen werden kann. Also weder ein belastbarer High-Pegel, noch Tristate.)

    P.S.: Willkommen im Forum...
     
  3. Berty

    Berty Neues Mitglied

    Registriert seit:
    5. Februar 2018
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo LotadeC!
    Du hast schon recht, wenn Du sagst, dass der PCF8474 praktisch nur den empfangenen I2C-Wert an seinen Ausgängen einstellt. Aber die Frage ist, wie diese Pins mit den Anschlüssen des LCD verbunden werden. Das ist im Grunde frei wählbar, wenn man selber die Schaltung entwirft. Bei fertigen I2C-Display-Modulen ist diese aber vorgegeben. Deshalb weicht meine PCF-Pinbelegung von der von Bascom vorgegebenen ab. Natürlich könnte ich das anpassen, wenn ich eine eigene Schaltung entwerfe. Ich möchte aber mein industrielles Modul benutzen. Inzwischen habe ich im Internet die "$lib "YwRobot_Lcd_i2c.lib" gefunden, die genau meiner Pinblegung entspricht.
    Mit freundlichen Grüßen
    Berty
     
  4. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.789
    Zustimmungen:
    40
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    Wahrscheinlich wird derjenige, der die Bibliothek erstellt hat ein Dispay mit ebender Verdrahtung, gehabt haben. Warum soll nun gerade Dein Display die Referenz darstellen, und seins der Exot sein? Es gibt meiner Meinung nach keinen Standard.
    Und daß Du eben die Verdrahtung nicht anpassen willst, hab ich schon angenommen. Deswegen hab ich ja extra auf AN #118 hingewiesen, konkret auf die "modded Version", die dem Anwender erlaubt, das Pin-Mapping entsprechend seiner vorhandenen/erwünschten tatsächlichen Verdrahtung anzupassen.
    Bei der modifizierten Version werden nämlich vor dem Senden hier:
    Code:
      BST  _temp1, 0
    * BLD  _temp2, PCF_D4
      BST  _temp1, 1
    * BLD  _temp2, PCF_D5
      BST  _temp1, 2
    * BLD  _temp2, PCF_D6
      BST  _temp1, 3
    * BLD  _temp2, PCF_D7
      BST  _temp1, 4
    * BLD  _temp2, PCF_RS
      BST  _temp1, 5
    * BLD  _temp2, PCF_RW
      BST  _temp1, 6
    * BLD  _temp2, PCF_E2
      BST  _temp1, 7
    * BLD  _temp2, PCF_E1
     *BASIC: i2csend pcf8574_LCD, _temp2
    die einzelnen Bits nacheinander (aufsteigend von 0..7)aus dem Byte "_temp1" entnommen, und nacheinander (über das T-Flag) in "_temp2" übertragen - aber dort nicht mehr an derselben Bit-Stelle, sondern entsprechend der Konstanten "PCF_D4", PCF_D5", "PCF_E1" usw. Gesendet wird dann nicht "_temp1", sondern das ggf umsortiert kopierte "_temp2".

    Du hättest also in Deinem Programm lediglich diese Konstanten entsprechend Deiner tatsächlichen Verdrahtung bekanntmachen müssen
    Code:
    Const PCF_D4=0
    Const PCF_D5=1
    ...
    Const PCF_E1=7
    und die modifizierte Lib inkludieren und verwenden können...
     
  5. Berty

    Berty Neues Mitglied

    Registriert seit:
    5. Februar 2018
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo LotadeC!
    Ich habe Deine Empfehlung noch einmal genauer angeschaut. Die Lib ist tatsächlich universell anzupassen. Danke für den Tip. Ihn werde ich morgen gleich einmal praktisch ausprobieren. Natürlich ist mein Display-Modul kein absoluter Standard, aber es ist recht gebräuchlich und ich habe mich darauf eingestellt. Die preiswerten Arduino-Display-Module verwenden gleichfalls diese Pinbelegung. Noch einmal herzlichen Dank!
    Frreundliche Grüße
    Norbert
     

Diese Seite empfehlen

  • Über uns

    Unsere immer weiter wachsende Community beschäftigt sich mit Themenbereichen rund um Mikrocontroller- und Kleinstrechnersysteme. Neben den Themen Design von Schaltungen, Layout und Software, beschäftigen wir uns auch mit der herkömmlichen Elektrotechnik.

    Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  • Coffee Time

    Unser makerconnect-Team arbeitet hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und unser eigener makerconnekt-Server regelmäßig gewartet wird. Wir nehmen das Thema Datensicherung und Datenschutz sehr ernst und sind hier sehr aktiv, auch sorgen wir uns darum, dass alles Drumherum stimmt!

    Dir gefällt das Forum und die Arbeit unseres Teams und du möchtest es unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft, unser Team freut sich auch über eine Spende für die Kaffeekasse :-)
    Vielen Dank!
    Dein makerconnect-Team

    Spende uns! (Paypal)