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

2xLCD Beide mit PCF8574 - 2Adressen Bascom Ansteuern wie?

Dieses Thema im Forum "Programmierung und Bascom IDE" wurde erstellt von Thorsten_Sch, 22. Mai 2017.

  1. Thorsten_Sch

    Thorsten_Sch Mitglied

    Registriert seit:
    31. Oktober 2010
    Beiträge:
    142
    Zustimmungen:
    0
    Ort:
    HH
    Sprachen:
    BascomAVR
    Hallo Liebe Gemeine und Bastler

    Habe schon die liebe suchmaschiene angeschmiesen aber finde nichts darüber lol.

    Wie mache ich das in Bascom das ich 2 x LCD Beide mit PCF8574 und 2 Adressen ansteuern kann?

    Beispiel: LCD1 - nur Ausgänge ob an oder aus. LCD2 - Nur Uhr und Temparatur:


    Ich bitte um rat und tipps
    Vielen dank
    Thorsten Sch.
     
  2. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.565
    Zustimmungen:
    29
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    Der PCF8574 ist ein bidirektionales Schieberegister, genauer: seriell TWI/I²C zu parallel.
    Du kannst also damit ein parallel anzusteuerndes Display an den HW-TWI eines AVR hängen.
    Mit mehreren PCF...(mit unterschiedlichen Adressen) halt auch mehrere Displays.
    Wo ist jetzt Dein konkretes Problem?
    Welche Daten parallel(byte- oder nibbleweise) an das Display zu übertragen sind -> Datenblatt des Displays
    Wie der PCF entsprechende Daten überträgt -> Datenblatt des PCF
    Wie Du einen/mehrere PCF via TWI ansteuerst -> Datenblatt des AVR/Bascom-Hilfe

    Vielleicht hilft Dir Cassios Thread weiter, inwiefern dort gut dokumentierter Qellcode bereitgestellt wird, hab ich jetzt nicht überflogen. Generell sollten sich die dort verwendeten Routinen um einen Parameter zur Übergabe der SLA-veadresse erweitern lassen, denk ich mal...
     
  3. Thorsten_Sch

    Thorsten_Sch Mitglied

    Registriert seit:
    31. Oktober 2010
    Beiträge:
    142
    Zustimmungen:
    0
    Ort:
    HH
    Sprachen:
    BascomAVR
    Hallo LotadaC

    Wie gesagt im einen LCD Anzeige ( 1 ) Soll Ausgänge stehen
    ( LCD 16 x 2 ) PCF8574 Adresse &h70
    Zeile1 1-0 2-0 3-0 4-0
    Zeile2 5-0 6-0 7-0 8-0

    Im 2 LCD Uhr Datum
    ( LCD 16x2 ) PCF8574 Adresse &h72
    Zeile1 Uhrzeit: 01:00:00
    Zeile2 Datum: 22.05.17

    Wie sagt man Bascom wer was zu welche anzeige kommt???


    Wie gesagt das sind Beispiele....
    danke
    zum einfachen testen des PCF8574 Nehme ich diesen code:


    CodeBox BascomAVR
    $lib "Lcd_i2c.lib"       'ersetzt die Standard LCD Library
    $regfile = "m8def.dat"
    $crystal = 8000000
    $hwstack = 32
    $swstack = 10
    $framesize = 40
    
    Const Pcf8574_lcd2 = &H72
    Config I2cdelay = 15     'delay von 15=20µs=50kHz,10=10µs=100kHz;5=5µs=200KHz
    Config Scl = Portc.5     'I2C SCL Pin
    Config Sda = Portc.4     'I2C SDA Pin
    
    Dim _lcd_e As Byte      'Daten LCD
    _lcd_e = 64
    
    Dim A As Byte
    Dim B As Byte
    A = &B10000000           'LCD Hintergrund AUS
    B = &B00000000
    
    I2cinit
    Cursor Off
    I2csend &H70 , B
    
    Cls
    i2csend &h70 , Locate 1 , 1
    i2csend &h70 , "I2C-LCD TEST"
    Wait 2
    
    Do
      Wait 2
      I2csend &H70 , B
      Cls
      Locate 1 , 1
      Lcd "Reihe1 Zeile1"
      Wait 2
    
      Cls
      Locate 2 , 1
      Lcd "Reihe2 Zeile1"
      Wait 2
    
      Cls
      Locate 1 , 1
      Lcd "Hintergrund Aus"
      wait 1
      I2csend &H70 , A
    Loop
    



    Vielen dank für die Tipps
    Gruß
    Thorsten Sch.
     
  4. Dirk

    Dirk Administrator Mitarbeiter

    Registriert seit:
    28. Januar 2007
    Beiträge:
    3.963
    Zustimmungen:
    98
    Ort:
    Mittelhessen, Giessen
    Sprachen:
    C#, Assembler, Pascal, C++, PHP, Java
    Map
    Das machst du über die I2C Slave Adresse.

    So ganz genau verstehe ich deine Frage oder dein Problem auch nicht.

    Hast du allgemein Probleme bei der Ausgabe auf einem Display?
    Funktioniert das Display mit PCF8574 und Slave Adresse &H70?

    Dirk :ciao:
     
  5. Thorsten_Sch

    Thorsten_Sch Mitglied

    Registriert seit:
    31. Oktober 2010
    Beiträge:
    142
    Zustimmungen:
    0
    Ort:
    HH
    Sprachen:
    BascomAVR
    den code den ich zum testen nehme ist völlig okay.
    mein proplem ist nochmal anders dahrgestellt.

    atmege8 <---I2C-BUS ---> zu 1.LCD(PCF8574/&h70) --->zum 2.LCD(PCF8574/&h72)

    Im 1 LCD Ausgänge 2x16LCD
    Im 2 LCD Uhr & Datum 2x16LCD

    So wenn jemand einen Hilfreichen tipp geben kann wunderbar......
    Gruß Thorsten Sch.
     
  6. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.565
    Zustimmungen:
    29
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    Wenn (falls) die von Dir verwendete (und in Zeile eins eingebundene) Bibliothek gleichzeitig zwei unterschiedliche Adressen unterstützt, sollte auch irgendwo dokumentiert sein, wie Du die Adresse an die Routinen weitergibst.
    Ob und wie die Bibliothek dokumentiert ist, ob Du sie ggf modifizieren kannst, weiß ich nicht.
    In dem von mir oben verlinkten Thread ist der Quellcode einsehbar, und von Cassio sogar weitgehend erklärt.

    Cassio definiert zu begin eine Konstante für die (eine) Adresse des PCF/Displays. Es wird also so nur eine Adresse unterstützt. Du müßtest also die drei Subroutinen um einen zu übergebenden Adress-Parameter ergänzen, und dann in den Routinen selbst statt der Konstante den Parameter verwenden.
    Dann kannst(mußt) Du bei jedem Routinenaufruf den konkreten PCF festlegen.

    Genau den Tip hatte ich Dir oben bereits gegeben...
     
  7. Thorsten_Sch

    Thorsten_Sch Mitglied

    Registriert seit:
    31. Oktober 2010
    Beiträge:
    142
    Zustimmungen:
    0
    Ort:
    HH
    Sprachen:
    BascomAVR
    Soory übersehen endschuldige mich hierfür.........
    Danke
    Thorsten Sch.
     

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)