wurde der Code doch neu entwickelt.
Ööööhm.....
Ach ja?
Nun ja.....
wurde der Code doch neu entwickelt.
'----------------------------------------------- $lib "Lcd_i2c.lib" 'ersetzt die Standard LCD Library $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 32 $swstack = 10 $framesize = 40 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 I2cinit ' Subroutinen für LCD==SCHLAFZIMMER==================================================== Declare Sub Lcd2_(byval X1 As Byte , Byval X2 As Byte , Byval Text2 As String * 16) Declare Sub Lcd2_cls Declare Sub Lcd2_init Dim Text2 As String * 16 'LCD Ausgabe Dim Lcd2_text(16) As Byte At Text2 Overlay 'ASCII-Werte der LCD Ausgabe Dim Pos2 As Byte 'Locate Berechnung Const Pcx_lcd2 = &H72 'I2C-Adresse des PCF8574A '-----------PCF8574A----------- ' __ ' A0 -o|1 |o- Vdd ' A1 -o| |o- SDA ' A2 -o| |o- SCL ' D4 -o| |o- n.c. (INT) ' D5 -o| |o- E1 ' D6 -o| |o- E2 ' D7 -o| |o- RW ' GND -o|_9|o- RS ' Subroutinen für LCD==SCHREIBTISCH================================================= Declare Sub Lcd1_(byval X1 As Byte , Byval X2 As Byte , Byval Text1 As String * 20) Declare Sub Lcd1_cls Declare Sub Lcd1_init Dim Text1 As String * 20 'LCD Ausgabe Dim Lcd1_text(20) As Byte At Text1 Overlay 'ASCII-Werte der LCD Ausgabe Dim Pos1 As Byte 'Locate Berechnung Const Pcx_lcd1 = &H70 'I2C-Adresse des PCF8574A '-----------PCF8574A----------- ' __ ' A0 -o|1 |o- Vdd ' A1 -o| |o- SDA ' A2 -o| |o- SCL ' D4 -o| |o- n.c. (INT) ' D5 -o| |o- E1 ' D6 -o| |o- E2 ' D7 -o| |o- RW ' GND -o|_9|o- RS Dim Init(8) As Byte 'Byte-Array für LCD-Parameter Dim Ascii_zeichen(10) As Byte 'getrennte ASCII-Werte zur Übermittlung Dim Zz As Byte 'Zeichenzähler Dim Zi As Byte 'Zeichen-Indexzähler Lcd1_init 'LCD zum Betrieb initialisieren Lcd2_init 'LCD zum Betrieb initialisieren Do Lcd1_ 1 , 1 , "display 1" Lcd1_ 2 , 1 , "Wunderbar" Wait 3 Lcd2_ 1 , 1 , "Display 2" Lcd2_ 2 , 1 , "Es Geht" Wait 3 Lcd1_cls Lcd2_cls Loop ' ############################################################################# Sub Lcd1_(x1 As Byte , X2 As Byte , Text1 As String * 16) 'Sub zur Zeichenausgabe am Display $include "_1_2704_i2c.bas" ' ############################################################################# Sub Lcd1_cls: 'Sub zum löschen beider Displayhälften $include "_1_2704_CLS.bas" ' ############################################################################# Sub Lcd1_init: 'Sub zum initialisieren beider Displayhälften $include "_1_2704_init.bas" ' ############################################################################# Sub Lcd2_(x3 As Byte , X4 As Byte , Text1 As String * 16) 'Sub zur Zeichenausgabe am Display $include "_2_2704_i2c.bas" ' ############################################################################# Sub Lcd2_cls: 'Sub zum löschen beider Displayhälften $include "_2_2704_CLS.bas" ' ############################################################################# Sub Lcd2_init: 'Sub zum initialisieren beider Displayhälften $include "_2_2704_init.bas"
LCD16_und das
LCD_in
LCD1_und
LCD2_geändert weil:
If ... End If Do ... Loop While ... Wend Sub ... End Sub
sub abc
include def
sub ghi
include jkl
...
Schon mal irgendwo im Code das Kontextmenü aufgerufen (Rechtsklick)? -> Proper IndentRichtiges Einrücken würde schon helfen... (dem Compiler ist es egal, aber dem Auge würde es auffallen.
Da rückt er ja schon beim schreiben ein. Außerdem kannst Du da auch Blöcke "einklappen" - das kann Bascom nicht...ist sowas ja Standard...
$regfile = "m32adef.dat" $crystal = 8000000 $hwstack = 40 $swstack = 40 $framesize = 40 Declare Sub Lcd_(byval X1 As Byte , Byval X2 As Byte , Byval Text1 As String * 27) Declare Sub Lcd_cls Declare Sub Lcd_init Dim Text As String * 27 'LCD Ausgabe Dim Lcd_text(27) As Byte At Text Overlay 'ASCII-Werte der LCD Ausgabe Dim Init(8) As Byte 'Byte-Array für LCD-Parameter Const Pcx_lcd = &H72 'I2C-Adresse des PCx8574(A) ' I2C-Config Config Scl = Portc.0 'I2C SCL Config Sda = Portc.1 'I2C SDA Config I2cdelay = 1 I2cinit ' ============================================================================== Do Lcd 1 , 1 , "display 1" Lcd 2 , 1 , "Wunderbar" Wait 3 Loop End ' ############################################################################# Sub Lcd_(x1 As Byte , X2 As Byte , Text1 As String * 27) 'Sub zur Zeichenausgabe am Display $include "_2704_i2c.bas" ' ############################################################################# Sub Lcd_cls: 'Sub zum löschen beider Displayhälften $include "_2704_CLS.bas" ' ############################################################################# Sub Lcd_init: 'Sub zum initialisieren beider Displayhälften $include "_2704_init.bas"