Hallo Forum und Bastler
Ja ich mal wieder, hab ein proplem und zwar geht es um ein Code von Fred "SCHREIBTISCHSTEUERRUNG"
ich würde gern das nach einen tasten 1-5 die beleuchtung aus geht nach zeit.....
wenn ich die taste 1-5 wieder drücke an geht und wieder aus geht nach zeit.
ich hoffe es wahr verständtlich.
Gruß Thorsten Sch
Der Code hier->
CodeBox BascomAVR
Ja ich mal wieder, hab ein proplem und zwar geht es um ein Code von Fred "SCHREIBTISCHSTEUERRUNG"
ich würde gern das nach einen tasten 1-5 die beleuchtung aus geht nach zeit.....
wenn ich die taste 1-5 wieder drücke an geht und wieder aus geht nach zeit.
ich hoffe es wahr verständtlich.
Gruß Thorsten Sch
Der Code hier->
CodeBox BascomAVR
'****noch ein Versuch**** $lib "Lcd_i2c.lib" 'ersetzt die Standard LCD Library $regfile = "m16def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 32 $framesize = 32 I2cinit 'dies ist die Kennung für Lib Lcdpin 'etwas warten LCD-Controller wird geladen '***************************************************** 'Nun legen wir die Dimensionierung der Taster fest T5 Alias Portd.2 Dim T5_alt As Bit 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 Status5 As String * 3 Dim I As Long Dim A As Byte Dim B As Byte A = &B10000000 'Aus B = &B00000000 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 = 1 'Internen PullUp-Widerstand aktivieren. 'Port Einstellungen PortC5 wird der Variable T2 zugeordnet(als Eingang) Config Portd.4 = Input Portd.4 = 1 'Internen PullUp-Widerstand aktivieren. 'Port Einstellungen PortC5 wird der Variable T3 zugeordnet(als Eingang) Config Portd.5 = Input Portd.5 = 1 'Port Einstellungen PortC5 wird der Variable T4 zugeordnet(als Eingang) Config Portd.6 = Input Portd.6 = 1 'Port Einstellungen PortC5 wird der Variable T4 zugeordnet(als Eingang) Config Portd.2 = Input Portd.2 = 1 '-------------------------------------------------------------------------------------------- '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 ) Out1 Alias Portb.7 'AUSGANG 6Pol Out2 Alias Portb.6 'AUSGANG 6Pol 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 Config Out1 = Output Config Out2 = Output '------------------------------------------------------------------------------------------- La5 Alias Porta.7 'Lampe 5 Mitte ROT 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 La5 = Output 'als ausgang zuweisen 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 Locate 1 , 1 Lcd "Lampen Test" Set La1 Wait 2 'alle EIN = H Set La2 Wait 2 Set La3 Wait 2 Set La4 Wait 2 Set La5 Wait 2 Cls Locate 1 , 1 Lcd " Lampen Test Fertig" Cls Wait 2 Locate 1 , 1 Lcd " REALIS TEST" Set Re1 Wait 2 Set Re2 Wait 2 Set Re3 Wait 2 Set Re4 Wait 2 Cls Wait 2 Locate 1 , 1 Lcd "OUT 5-6" Set Out1 Wait 2 Set Out2 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 Reset La5 Reset Re1 Reset Re2 Reset Re3 Reset Re4 Reset Out1 Reset Out2 Wait 2 Cls Locate 3 , 5 Lcd " HauptRE-AN" Set Re5 Wait 2 Cls '------------------------------------------------------------------------------------------- 'Fred Zuslasung wegen ob Aus Status1 = "AUS" 'Das ist hab ich eingefügt und wird angezeigt Status2 = "AUS" Status3 = "AUS" Status4 = "AUS" Status5 = "AUS" 'Fred Zulasung wegen ob Aus '------------------------------------------------------------------------------------------ 'hier ist Schleife die permanent läuft Do T5 = Pind.2 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 ## If T1 = 1 Or T2 = 1 Or T3 = 1 Or T4 = 1 Then I2csend &H7A , B '-- Abfrage Tasten 1 --- If T1 <> T1_alt Then If T1 = 0 Then : I2csend &H7A , B Toggle Re1 Toggle La1 If Re1 = 1 Then Status1 = "EIN" If Re1 = 0 Then Status1 = "AUS" Else 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 --- I2csend &H70 , B 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 I2csend &H70 , A 'LCD - AUS ' 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 '----------------------------------------- '-- Abfrage Tasten 5 --- If T5 <> T5_alt Then If T5 = 0 Then Toggle Out1 : Toggle Out2 Toggle La5 If Out1 = 1 Then Status5 = "EIN" If Out1 = 0 Then Status5 = "AUS" Else Toggle Out2 ' End If End If '------letzen Tastendruck merken---------- T5_alt = T5 '+++++++ LCD-Anzeige ++++++++ Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte Lcd "RGB-L=" ; Status1 Locate 2 , 1 'Cursor auf 2 Zeile, 1 Spalte Lcd "Vers.=" ; Status2 Locate 3 , 1 'Cursor auf 3 Zeile, 1 Spalte Lcd "LICHT=" ; Status3 Locate 4 , 1 'Cursor auf 3 Zeile, 1 Spalte Lcd "-AVR-=" ; Status4 Locate 1 , 11 Lcd "OUT-1=" ; Status5 Loop End '****************END****************************