Selber schuld!
Kommentare in Basiczeilen natürlich mit ' und nicht mit ;
Läuft aber immer noch nicht. Bin am testen...
Hallo Robert,
Toll! hab deinen Code gleich ausprobiert.
Bascom mault aber in der Zeile:
Invalid datatype[[0011]0], inFile blablablaCode:*BASIC: i2cwbyte _temp1 ; val register 2
Variable not dimensioned [0->], in File
Wenn ich die Zeile auskommentiere werden keine Fehler mehr angezeigt.
Der Datentyp von _temp1 stimmt doch????
Selber schuld!
Kommentare in Basiczeilen natürlich mit ' und nicht mit ;
Läuft aber immer noch nicht. Bin am testen...
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
Jetzt sollten alle P0.0 - P0.7 im Sekundentakt zwischen 0 u. 5V hin un herpendeln. Das kann man auch mit Digtal-Multimeter messenCode: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
Geschieht das nicht, haben wir einen anderen Hund drinnen
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
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:
so. jetzt blinkt der Cursor links oben. Soweit sogut.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
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.
Hallo Robert,
die Ansteuerung des Displays läuft jetzt:
jetzt müssen wir in den Bascomkeller hinuntersteigen und die "Anschlüsse" suchen. Gibts da nicht nen Hausmeister?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
*hehe*...Hausmeister?..
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.
Hallo Robert,
den Hausmeister hab ich zwar nicht gefunden, aber jemanden der ihn kennt!
https://www.roboternetz.de/wissen/in...scom_Libraries
schöner Artikel. Der Mann muss mächtig ahnung haben
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
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?
Lesezeichen