Mir fällt noch was ein: Zum Taster Abfragen eignet sich das DEBOUNCE Kommando gut.
Mir fällt noch was ein: Zum Taster Abfragen eignet sich das DEBOUNCE Kommando gut.
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
Hallo zusammen!!
Vielen Dank für eure schnellen Anworten und Infos!
@ Sauerbruch: Waren ne´ ganze Menge Fehlermeldungen!
Aber auch der Ansatz das ich mich mit der Grundlegenden Struktur zur Konfiguration von Timern ect mehr befassen sollte war richtig!!!
Warum ich allerdings die Ports noch falsch konfigurierte ist mir ein Rätsel...
Sicher weil ich den Code oben im Win Texteditor, heute auf der Arbeit aus´m Kopp eingehackt habe...
Habe den Timer dann kurzerhand weg gelassen und es auf anderem Wege probiert.
Das aber für jedes If ein End If kommen muss ist nicht ganz richtig...
Wenn man die gesamte Befehlsfolge in eine Reihe schreibt tut´s trozdem!
Habe mir auch schon etwas Lektüre angelesen und etliche Schaltungen aufgebaut und den passenden Code dazu abgetippt.
-Aber halt nur abgetippt, was nicht immer viel Aufschluss über die Herangehensweise brachte...
Denke da muss man wie so oft im Leben einfach ausdauernd am Ball bleiben und viel ausprobieren.
Unten noch ein anderer Code der zum Erfolg geführt hat...(warum auch immer)
Kann mir da manche Sachen einfach nicht erklären....zB das byval B... in der Unterprozedur nutze ich die Variable A....
Wenn ich aber Declare Sub Lichtszenen(byval A As Byte) schreibe dann funzt es nicht mehr...
Naja, muss ich noch en´ paar Versuche starten! Macht ja richtig Laune!!
Vielen Dank nochmal an euch alle und auch an Kampi für seine tollen Tipps!
Bin für Verbesserungen / Vereinfachungen und weitern Tipps sehr dankbar!
Viele Grüße,
P@ty
Hier der Anfängercode der wohl für ein geübtes Auge schlimmer nicht sein könnte...
$regfile = "M168def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 9600
'Pin- Portkonfiguration Outputs
Config Portc.0 = Output
Led1 Alias Portc.0
Portc.0 = 0
Config Portc.1 = Output
Led2 Alias Portc.1
Portc.1 = 0
Config Portb.1 = Output
Led3 Alias Portb.1
Portb.1 = 0
'Pin- Portkonfiguration Inputs
Config Pind.4 = Input
Taster Alias Pind.4
Portd.4 = 1
Dim A As Byte
Dim X As Word
Declare Sub Lichtszenen(byval B As Byte)
'Hauptprogramm
Do
If Taster = 0 Then 'Wenn Taster = 0 dann...
Incr X 'X incrementieren...
Print X 'sonst X = 0
Else
X = 0
End If
If X >= 200 Then 'Wenn X >= 200ms dann...
Gosub Lichtszenen 'Sprung in Unterprozedur Lichtszene
End If
If A = 1 And Taster = 0 Then 'Wenn Variable A = 1 und Taster = 0 dann...
Led1 = 1 'Led1 an
Led2 = 0
Led3 = 0
Elseif Taster = 1 And A = 1 Then 'Led1 aus
Led1 = 0
Led2 = 0
Led3 = 0
End If
If A = 2 And Taster = 0 Then 'Wenn Variable A = 2 und Taster = 0 dann...
Led1 = 0 'Led2 an
Led2 = 1
Led3 = 0
Elseif Taster = 1 And A = 2 Then 'Led2 aus
Led1 = 0
Led2 = 0
Led3 = 0
End If
If A = 3 And Taster = 0 Then 'Wenn Variable A = 3 und Taster = 0 dann...
Led1 = 0 'Led3 an
Led2 = 0
Led3 = 1
Elseif Taster = 1 And A = 3 Then 'Led3 aus
Led1 = 0
Led2 = 0
Led3 = 0
End If
Loop
End
'Unterprozedur
Sub Lichtszenen
If Taster = 0 Then Incr X 'Wenn Tatser = 0 dann Incrementiere X
If X >= 200 Then A = 1 'Wenn X >= 200ms dann Variable A = 1
If A = 1 Then 'Wenn A = 1 dann...
Led1 = 1
Led2 = 0
Led3 = 0
End If
If X >= 750 Then A = 2
If A = 2 Then 'Wenn X >= 750ms dann Variable A = 2
Led1 = 0 'Wenn A = 2 dann...
Led2 = 1
Led3 = 0
End If
If X >= 1250 Then A = 3 'Wenn X >= 1250ms dann Variable A = 3
If A = 3 Then 'Wenn A = 3 dann...
Led1 = 0
Led2 = 0
Led3 = 1
End If
If Taster = 1 Then 'Wenn Taster losgelassen wird dann...
Led1 = 0
Led2 = 0
Led3 = 0
End Sub
End If
Lesezeichen