Klar ist das in Ordnung - dafür ist so´n Forum ja da!ich hoffe das ist in odnung wenn ich noch eine fragen hier aufliste....
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:
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!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







Zitieren

Lesezeichen