Hallo Forum gemeinde und Bastler
Ich versuche die ganze zeit per I2C-LCD Hintergrund per taster drücken das nach der zeit das hintergund aus geht.
Bekomme es nicht hin, da ich nicht genau weis wie oder was ich wo einfügen muss....
könnte mir jemanden helfen bitte.
Hier mein code
Bitte um ratschläge und tipps
Mit Freundtlichen Grüßen
Thorsten Sch.
Ich versuche die ganze zeit per I2C-LCD Hintergrund per taster drücken das nach der zeit das hintergund aus geht.
Bekomme es nicht hin, da ich nicht genau weis wie oder was ich wo einfügen muss....
könnte mir jemanden helfen bitte.
Hier mein code
Code:
$lib "Lcd_i2c.lib" 'ersetzt die Standard LCD Library
$regfile "m32def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 32
$framesize = 40
I2cinit 'dies ist die Kennung für Lib Lcdpin 'etwas warten LCD-Controller wird geladen
'*****************************************************
'Nun legen wir die Dimensionierung der Taster fest
T1 Alias Portd.3
Dim T1_alt As Bit 'ist Merker
T2 Alias Portd.4
Dim T2_alt As Bit 'ist Merker
T3 Alias Portd.5
Dim T3_alt As Bit 'ist Merker
T4 Alias Portd.6
Dim T4_alt As Bit 'ist Merker
Dim Status1 As String * 3 'für LCD
Dim Status2 As String * 3
Dim Status3 As String * 3
Dim Status4 As String * 3
Dim Realis_1 As Byte
Dim Realis_2 As Byte
Dim Realis_3 As Byte
Dim Realis_4 As Byte
Realis_1 = &B00000001
Realis_2 = &B00000010
Realis_3 = &B00000100
Realis_4 = &B00001000
'Config LCD PCF8574 LCD-HINTERGRUND
Dim A As Byte
Dim B As Byte
A = &B10000000 'Aus
B = &B00000000 'An
Const Pcf8574_lcd = &H7A 'I2C Adresse &H40 ( 16x2 LCD )
Config I2cdelay = 15 'delay von 5=20µs=50kHz,10=10µs=100kHz;5=5µs=200KHz
Config Scl = Portc.0 'I2C SCL Pin
Config Sda = Portc.1 'I2C SDA Pin
Dim _lcd_e As Byte
_lcd_e = 64
'Port Einstellungen PortC4 wird der Variable T1 zugeordnet(als Eingang)
Config Portd.3 = Input
Portd.3 = 0 'Internen PullUp-Widerstand aktivieren.
'Port Einstellungen PortC5 wird der Variable T2 zugeordnet(als Eingang)
Config Portd.4 = Input
Portd.4 = 0 'Internen PullUp-Widerstand aktivieren.
'Port Einstellungen PortC5 wird der Variable T3 zugeordnet(als Eingang)
Config Portd.5 = Input
Portd.5 = 0
'Port Einstellungen PortC5 wird der Variable T4 zugeordnet(als Eingang)
Config Portd.6 = Input
Portd.6 = 0
'--------------------------------------------------------------------------------------------
'Hier werden die Ausgänge dimensionieren und ein"Name" vergeben
'--------------------------------------------------------------------------------------------
Re1 Alias Porta.0 'Realis1 Ausgang
Re2 Alias Porta.1 'Realis2 Ausgang
Re3 Alias Porta.2 'Realis3 Ausgang
Re4 Alias Porta.3 'Realis4 Ausgang
Re5 Alias Porta.4 'Realis5 Spannung zufuhr ( NEU )
Config Re1 = Output 'als Ausgang zuweisen
Config Re2 = Output 'als Ausgang zuweisen
Config Re3 = Output 'als Ausgang zuweisen
Config Re4 = Output 'als Ausgang zuweisen
Config Re5 = Output 'als Ausgang zuweisen
'-------------------------------------------------------------------------------------------
La1 Alias Portb.0 'Lampe1
La2 Alias Portb.1 'Lampe2
La3 Alias Portb.2 'Lampe3
La4 Alias Portb.3
Out7 Alias Portb.7 'Lampe4
Config La1 = Output 'als Ausgang zuweisen
Config La2 = Output 'als Ausgang zuweisen
Config La3 = Output 'als Ausgang zuweisen
Config La4 = Output 'als Ausgang zuweisen
Config Out7 = Output
'Hier nicht muss doch ständig abgefragt werden
'Lcd_hi = 1
'----------------NEU---------------------------------------------------------------------
Wait 2 'ausprobieren Relais sind doch etwas träge.
' dann Lampentest
Set La1 'alle EIN = H
Set La2
Set La3
Set La4
Wait 2
'-------------------------------------------------------------------------------------------
'nach Start einmal Anzeigen und etwas warten (nur mal so)
Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
Lcd "Schreibtisch "
Locate 2 , 1 'Cursor auf 2 Zeile, 1 Spalte
Lcd "Steuerung "
Locate 3 , 1 'Cursor auf 3 Zeile, 1 Spalte
Lcd "alles OK "
Locate 4 , 1 'Cursor auf 3 Zeile, 1 Spalte
Lcd "BITTE WARTEN "
Waitms 30
'so schnell kann man doch nichts sehen Wait 1 gerade So.
'Eine Testanzeige die man nicht sieht ist doch unnütz oder ???
Wait 2 'waten
'Test beenden
Reset La1 'alle AUS = L
Reset La2
Reset La3
Reset La4
Wait 2
Set Re5
Waitms 100
Cls
I2csend &H7A , A
'-------------------------------------------------------------------------------------------
'Fred Zuslasung wegen ob Aus
Status1 = "AUS" 'Das ist hab ich eingefügt und wird angezeigt
Status2 = "AUS"
Status3 = "AUS"
Status4 = "AUS"
'Fred Zulasung wegen ob Aus
'------------------------------------------------------------------------------------------
'hier ist Schleife die permanent läuft
Do
T1 = Pind.3
T2 = Pind.4 'die Ports für Taster lesen
T3 = Pind.5
T4 = Pind.6
'Wait ist besser wie [Debounce Pinx.x]. ist eine sehr langsame Flankenberechnung
'für Taster Entprellung. Da in deiner Schleife die Laufzeiten kaum eine Rolle
'spielen, passe dieses Wait an wenn nötig.
Waitms 10 'voher 100
'## toggeln für Output ist getriggerte Doppelabfrage ##
'-- Abfrage Tasten 1 ---
If T1 <> T1_alt Then
If T1 = 0 Then
'fallende Flanke
Toggle Re1
Toggle La1
If Re1 = 1 Then Status1 = "EIN"
If Re1 = 0 Then Status1 = "AUS"
Else
'steigende Flanke
End If
End If
'------letzen Tastendruck merken----------
T1_alt = T1
'-----------------------------------------
'-- Abfrage Tasten 2 ---
If T2 <> T2_alt Then
If T2 = 0 Then
Toggle Re2
Toggle La2
If Re2 = 1 Then Status2 = "EIN"
If Re2 = 0 Then Status2 = "AUS"
Else '
End If
End If
'------letzen Tastendruck merken----------
T2_alt = T2
'-----------------------------------------
'-- Abfrage Tasten 4 ---
If T3 <> T3_alt Then
If T3 = 0 Then
Toggle Re3
Toggle La3
If Re3 = 1 Then Status3 = "EIN"
If Re3 = 0 Then Status3 = "AUS"
Else '
End If
End If
'------letzen Tastendruck merken----------
T3_alt = T3
'-----------------------------------------
'-- Abfrage Tasten 4 ---
If T4 <> T4_alt Then
If T4 = 0 Then
Toggle Re4
Toggle La4
If Re4 = 1 Then Status4 = "EIN"
If Re4 = 0 Then Status4 = "AUS"
Else '
End If
End If
'------letzen Tastendruck merken----------
T4_alt = T4
'-----------------------------------------
'+++++++ LCD-Anzeige ++++++++
Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
Lcd "RGB-Licht = " ; Status1
Locate 2 , 1 'Cursor auf 2 Zeile, 1 Spalte
Lcd "Verstearker = " ; Status2
Locate 3 , 1 'Cursor auf 3 Zeile, 1 Spalte
Lcd "L I C H T = " ; Status3
Locate 4 , 1 'Cursor auf 3 Zeile, 1 Spalte
Lcd "12Volt/AVR = " ; Status4
Loop
End
'****************END****************************
Bitte um ratschläge und tipps
Mit Freundtlichen Grüßen
Thorsten Sch.