- Labornetzteil AliExpress         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 28

Thema: Display über i2c

  1. #11
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Anzeige

    Praxistest und DIY Projekte
    Hallo Robert,

    Toll! hab deinen Code gleich ausprobiert.
    Bascom mault aber in der Zeile:

    Code:
     *BASIC: i2cwbyte    _temp1   ; val register 2
    Invalid datatype[[0011]0], inFile blablabla
    Variable not dimensioned [0->], in File
    Wenn ich die Zeile auskommentiere werden keine Fehler mehr angezeigt.

    Der Datentyp von _temp1 stimmt doch????

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Selber schuld!

    Kommentare in Basiczeilen natürlich mit ' und nicht mit ;

    Läuft aber immer noch nicht. Bin am testen...

  3. #13
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Entschuldige, das mit dem Semikolon war wohl ich

    Wenn's möglich ist, wär natürlich ein Test nur der I2c-übermittlung alleine hilfreich. Denn ob das LCD was zeigt, kann verschiedene Ursachen haben.

    Mach ein einfaches Bascom testprogramm
    Code:
     
    
    DIM toggle AS BYTE 
    
        i2cstart 
        i2cwbyte    pcf8574_LCD 
        i2cwbyte    &H06   ;command (write register 6) 
        i2cwbyte    &H00   ; val register 6   00   -> all Output 
        i2cwbyte    &HE8   ; val register 7   E8   -> 0, 1, 2 Output   3,4,5,6,7 input 
        i2cstop 
    ;------------------------------------------------------------------------ 
        
    DO 
        i2cstart 
        i2cwbyte    pcf8574_LCD 
        i2cwbyte    &H02   
        i2cwbyte    toggle
        i2cstop 
        toggle = toggle XOR &HFF
        Waitms 1000
    LOOP
    Jetzt sollten alle P0.0 - P0.7 im Sekundentakt zwischen 0 u. 5V hin un herpendeln. Das kann man auch mit Digtal-Multimeter messen

    Geschieht das nicht, haben wir einen anderen Hund drinnen
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #14
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo Robert,

    ganz so einfach ists nicht.

    Die Initialisierung des PCA passt.
    Aber dann muß das Display initialisiert werden.
    Damit das Display überhaupt Daten annimmt muß der Anschluß Enable ein und ausgeschaltet werden

    Laut Datasheet vom Display:

    Code:
        I2cstart
        I2cwbyte Pcf8574_lcd
        I2cwbyte &H03
        I2cwbyte &H01
        I2cstop
        Waitms 2
        I2cstart
        I2cwbyte Pcf8574_lcd
        I2cwbyte &H02
        I2cwbyte &H3C
        I2cwbyte &H00
        I2cstop
       Waitms 2
        I2cstart
        I2cwbyte Pcf8574_lcd
        I2cwbyte &H03
        I2cwbyte &H01
        I2cstop
        Waitms 2
        I2cstart
        I2cwbyte Pcf8574_lcd
        I2cwbyte &H02
        I2cwbyte &H0F
        I2cwbyte &H00
        I2cstop
        Waitms 2
        I2cstart
        I2cwbyte Pcf8574_lcd
        I2cwbyte &H03
        I2cwbyte &H01
        I2cstop
        Waitms 2
        I2cstart
        I2cwbyte Pcf8574_lcd
        I2cwbyte &H02
        I2cwbyte &H01
        I2cwbyte &H00
        I2cstop
    so. jetzt blinkt der Cursor links oben. Soweit sogut.

  5. #15
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    verstehe, ist auch logo. Kann man auch einbauen.
    Das gleiche Problem sollte ja aber auch die dzt. LIB haben, muß mal schauen, wie der sich das so vorgestellt hat.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #16
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo Robert,

    die Ansteuerung des Displays läuft jetzt:

    Code:
    '###############################################################################
    '#                                                                             #
    '#    I2C-Display mit PCA 9555D                                                #
    '#                                                                             #
    '#    (c) Günter Gerold                                                        #
    '#                                                                             #
    '#    Zum Pin sparen kann ein LCD-Display auch an einen I2C-Bus gehängt werden #
    '#    Die eingebauten Bascom-Befehle gehen (noch) nicht                        #
    '#    Der Zeilenumbruch erfolgt automatisch                                    #
    '###############################################################################
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    Config Scl = Portc.5                                        'Configure I2C SCL
    Config Sda = Portc.4
    Const Pca9555_lcd = &H40                                    'Addresse des ICs
    
    Declare Sub Config_To_lcd(byval Configbyte As Byte)
    Declare Sub Data_to_lcd(byval Databyte As Byte)
    
    Dim I As Byte
    Dim Puffer As Byte
    Dim Text As String * 16
    Dim Textarr(16) As Byte At Text Overlay
    
    I2cstart                                                    'Hier werden die Ausgänge des ICs gesetzt
    I2cwbyte Pca9555_lcd
    I2cwbyte &H06
    I2cwbyte &H00
    I2cwbyte &HE8
    I2cstop
    
    Call Config_to_lcd(&H3c)                                    'Function Set
    Call Config_to_lcd(&H0f)                                    'Display on/off
    Call Config_to_lcd(&H01)                                    'clear Display
    Call Config_to_lcd(&H06)                                    'Entry Mode Set
    
    Text = "Hallo   Robert  "
    
    For I = 1 To 16
    Puffer = Textarr(i)
    If I = 9 Then                                               'Das Display hat 2*8 Zeichen
     Call Config_to_lcd(&Hc0)                                   'Beim 9. Zeichen wird auf die untere Zeile geschaltet
    End If
    Call Data_to_lcd(puffer)
    Next
    
    Do
    Loop
    
    Sub Config_to_lcd(configbyte)
        I2cstart
        I2cwbyte Pca9555_lcd
        I2cwbyte &H02
        I2cwbyte Configbyte
        I2cwbyte &H01
        I2cstop
        Waitms 2
        I2cstart
        I2cwbyte Pca9555_lcd
        I2cwbyte &H03
        I2cwbyte &H00
        I2cstop
    End Sub
    Sub Data_to_lcd(databyte)
        I2cstart
        I2cwbyte Pca9555_lcd
        I2cwbyte &H02
        I2cwbyte Databyte
        I2cwbyte &H05
        I2cstop
        I2cstart
        I2cwbyte Pca9555_lcd
        I2cwbyte &H03
        I2cwbyte &H04
        I2cstop
    End Sub
    jetzt müssen wir in den Bascomkeller hinuntersteigen und die "Anschlüsse" suchen. Gibts da nicht nen Hausmeister?

  7. #17
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    ...Hausmeister?..
    *hehe*
    man kann das mal in die Lib einbinden und gucken, wenn's so geht, soll's recht sein
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #18
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo Robert,

    den Hausmeister hab ich zwar nicht gefunden, aber jemanden der ihn kennt!

    https://www.roboternetz.de/wissen/in...scom_Libraries

  9. #19
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    schöner Artikel. Der Mann muss mächtig ahnung haben
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  10. #20
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo Robert,

    wenn ich das richtig verstanden habe, muß ich mir den passenden Aufruf in den Libs raussuchen:

    CLS = _CLS hab ich gefunden.

    Leider finde ich z.B. Upperline und Lowerline nicht. Gibts da ne Liste?

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen