Hi
Bei deiner Abfrage gehst du davon aus, das, sollte der Taster sein Signal verlieren, er die If-Bedingung verläßt. Nun, ob das in Basic so ist, weiß ich nicht, doch ich bezweifle dies. Also zählst du nach 50 ms einfach eine Minute hoch, egal welchen Zustand dein Schalter hat. Das mag hier funktionieren....
Dein Wait hält übrigends dein Programm gewaltig auf. Auch das fällt hier nicht ins Gewicht, solltest du aber wissen. Dazu mal ein Beispiel:
Du bekommst einen Auftrag, 5 km durch eine belebte Stadt zu laufen. Ist normalerweise kein Problem und kann relativ gemütlich in 1 Std. erledigt werden. Nun sagt dir aber deine innere Stimme: "immer, wenn du ein schönes Mädel siehst, bleib 5 Min. stehen und schau ihr nach" .....
Solange du keinem Mädel begegnest, ist der Weg in einer Stunde kein Problem, aber .....
Um nun sicher zu sein, das du kein Prellen mehr hast, kannst du folgendermaßen vorgehen:
Nimm eine Zählvariable.
Nun deine Anweisungen:
Code:
If Taster1 = 0 then Inc Zaehler
If Taster1 = 1 then Zaehler =0
If Zaehler = 10 then Inc Minute
Nun, was ist da anders? Das Programm läuft durch, wird also nicht gebremst durch irgendwelche Wartezeiten.
Ändert sich der Tasterzustand, dann wird wieder von vorn begonnen mit der Zählerei. Erst wenn du 10 Programmzyklen keine Änderung vom Taster hattest, ist das Tastersignal gültig. und du kannst die gewünschte Aktion ausführen.
@All
Schlagt mich bitte nicht, es gibt inteligentere Lösungen, aber die ist glaub ich ganz gut für Erklärung.
Gruß oldmax