Hallo zusammen,
habe da mal einige Fragen zu unten stehendem Code.
Kurz vor weg:
Es geht, wie schon im Titel beschrieben, darum drei Led´s unabhängig von einander mit einem Taster zu schalten.
Wird der Taster kurz betätigt soll eine von den 3 Led´s leuchten.
Wird der Taster länger betätigt (>=2sek) soll in eine Subroutine gesprungen werden in der je
nach dem wie lange der Taster betätigt wird (>=2 , >=4 , >=6sek) eine von den 3 Led´s ausgewählt wird.
Danach soll wieder in´s Hauptprogramm gesprungen werden in dem ich die ausgewählte Led 1 oder 2 oder 3
mit dem Taster an und ausschalten kann.
Ich bin noch ein ziemlicher Anfänger im Programmieren und würde mich über jede Hilfe freuen!
weiterhin habe ich mit der Timerkonfiguration auch noch Probleme und benötige da eure Unterstützung.
Vielen Dank schon mal für eure Hilfe!
Viele Grüße,
Patrick
Hier meine Bastellei...:
$regfile = "m168def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
'Pin- Portkonfiguration Outputs
Config Portd.2 As Output
Led1 Alias Portd.2
Led1 = 0
Config Portd.3 As Output
Led2 Alias Portd.3
Led2 = 0
Config Portd.4 As Output
Led3 Alias Portd.4
Led3 = 0
'Pin- Portkonfiguration Inputs
Config Pind.5 As Input
Taster Alias Pind.5
Taster = 1
Config Timer0 As Timer , Prescale? , sonstige Einstellungen für einen Sekundentimer???
Enable Timer0
Enable Interrupts
Dim A As Byte 'Lichtszenario
Dim B As Byte 'Lichtszenario- Auswahl
Dim C As Byte 'Timervariable
Timer0 = C
Stop C
Declare Sub Lichtszenen (byval B As Byte)
'Hauptprogramm
Do
C = 0 'Timer0 = 0
If Taster = 0 Then 'Wenn Taster gedrückt wird dann...
Start C 'soll Timer0 starten...
A = B 'und das Szenario ausgewählt werden.
Else 'Sonst ist...
A = 0 'A = 0 und...
Stop C 'der Timer0 wird gestoppt...
C = 0 'und auf null zurück gesetzt.
End IF
If C >= 2 Then 'wenn Timer0 >= 2sek ist dann...
Call Lichtszenen 'sprung in die Subroutine.
End IF
Loop
End
'Unterprozedur
Sub Lichtszenen
If Taster = 0 Then start C 'wenn Taster gedrückt wird start Timer0.
If C >= 2 Then B = 0 'wenn Timer0 >= 2sek dann ist B = 0
If B = 0 Then 'wenn B = 0 dann...
Led1 = 1
Led2 = 0
Led3 = 0
End If
If C >= 4 Then B = 1 'wenn Timer0 >= 4sek dann ist B = 1
If B = 1 Then 'wenn B = 1 dann...
Led1 = 0
Led2 = 1
Led3 = 0
End If
If C >= 6 Then B = 2 'wenn Timer0 >= 6sek dann ist B = 2
If B = 2 Then 'wenn B = 2 dann...
Led1 = 0
Led2 = 0
Led3 = 0
End IF
End Sub
Lesezeichen