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?
Lesezeichen