ich hoffe das ist in odnung wenn ich noch eine fragen hier aufliste....
Klar ist das in Ordnung - dafür ist so´n Forum ja da!
Wenn man es sich leisten kann, dass der Controller währenddessen nichts anderes macht als Warten, kann man Zeiten in Bascom ganz gut mit den Befehlen
wait x (X Sekunden)
waitms x (X Millisekunden)
waitus x (X Mikrosekunden)
messen. Die sind zwar nicht 100% genau, aber für solche Taster-Geschichten allemal ausreichend. Man könnte also ein wait 2 schreiben, und danach den Taster erneut abfragen. Ist er immernoch gedrückt -> Aktion 1, andernfalls Aktion 2. Das hat natürlich den gravierenden Nachteil, dass auch nach einem kurzen Druck die vollen 2 Sekunden gewartet werden, was vielleicht extrem nervig sein könnte.
Etwas aufwendiger aber komfortabler ist es, eine Variable z.B. alle 0,1 Sekunden hochzählen zu lassen, so lange wie der Taster gedrückt ist. Nachdem der Taster losgelassen wurde fragt man sie ab, und ist sie unter 20 -> Aktion 1, ansonsten Aktion 2. Als Code könnte das so aussehen:
Code:
...
...
Dim Z as Byte
Do
..
..
If PIND.7 = 0 then
Zahl = 0
While PIND.7 = 0
Zahl = Zahl + 1
waitms 100
Wend
If Zahl < 20 then
...
...
...
Else
...
...
...
End if
End if
Loop
Wenn Du in Bascom auf den Button mit dem blauen Fragezeichen klickst, geht die Hilfe auf. Und dort gibt es das Kapitel "Bascom Language Reference". Da kann man nicht nur sehen, was es alles an interessanten Möglichkeiten gibt, sondern es sind zu fast allen Befehlen auch einleuchtende Beispiele angegeben. Da solltest Du unbedingt mal reinschauen!
Lesezeichen