-
-
Moderator
Robotik Visionär
Hallo
Nein, das Ganze kommt irgendwo IN ein Programm und soll dazu dienen, eine gedrückte Taste abzuwarten.
Als "Schleifeninhalt" würde sich hier z.B. ein Blinken der StatusLED anbieten:
StatusLED(GREEN);
Msleep(200);
StatusLED(OFF);
Msleep(300);
Bei diesem Beispiel muss aber die Taste mindestens eine Sekunde (=zwei Durchläufe) gedrückt sein um erkannt zu werden.
Ein Abfrage in dieser Art:
t=PollSwitch();
t1=PollSwicht();
könnte dazu führen, dass bei einer Störung durch die unmittelbar folgenden Abfragen mit PollSwitch() sowohl bei t als auch bei t1 falsche Werte geliefert werden könnten. Deshalb lese ich je Runde (=Programmzyklus) nur einmal einen Wert aus (t) und vergleiche dann diesen mit dem Wert der letzten Runde (t1).
while() prüft VOR dem Eintritt der Schleife, ob die Abbruchbedingung erfüllt ist. Deshalb muss man die zu prüfenden Bedingungen schon zuvor sezten und die Schleife wird gegebenenfalls nicht betreten.
do while() wird immer zumindest einmal ausgeführt und prüft erst am Ende der Schleife, ob die Abbruchbedingung erfüllt ist. Für Abfragen auf Bedingungen, die während der Schleifenausführung auftreten, ist es deshalb meiner Meinung nach die bessere Wahl.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen