(18.08.2015 12:13 )grba123 schrieb: mein Programm sieht wie am Bild. Also ich möchte jetzt dass die Wiederholungsanzahl mit der in Zyklus definierte Zeit übereinstimmt und dass Timer richtige Zeit zeigt. Z.b Zyklusdauer 2000ms und Anzahl der Widederholungen 10. Timer solte jede sekunde eine Wiederholung zählen so dass am Ende steht 10 Wiederholungen und Teimer 20s
Dann lies dir doch einfach mal durch, was ich geschrieben habe und denk da mal 5 Minuten drüber nach...
Das
i in der Whileschleife gibt dir genau das, was du haben willst.
In der Schleife führst du dann deine Messung durch und wartest dann bis zum nächsten Vielfachen dessen, was du angegeben hast.
Beispiel: deine Schleife beinhaltet Programmcode, dessen Ausführung allein 1 Millisekunde Zeit benötigt. Du willst nach 2 Sekunden die nächste Messung starten. "Wait next MS multiple" bekommt als Wert die 2 Sekunden und muss jetzt noch 2000ms-1ms=1999ms warten. Würde dein Code z.B. 100 Millisekunden benötigen, dann wartet die Schleife noch 1900ms. Das bedingt natürlich das du dein Wait MS durch besagte Funktion ersetzt. Andernfalls hättest du den Fall 100ms+2000ms=2100ms
Dein "i" in der Whileschleife ist dein Zyklenzähler. Abhängig davon, wie groß deine definierte Wartezeit ist, musst du nun nur noch deinen Iterationszähler mit einem Faktor versehen und schon hast du deine Wartezeit in Sekunden als Ausgabewert.
(18.08.2015 12:27 )Lucki schrieb: (18.08.2015 10:29 )NoWay schrieb: Du wartest genau 1Sekunde plus die Zeit, die deine Schleife für die Abarbeitung des hinterlegten Codes benötigt.
Der Code und die Wait-Funktion werden aber parallel ausgeführt, und das heißt bei einem Wait von 1000ms: Solange der Code weniger als 1s zur Ausführung braucht, dauert ein Schleifendurchlauf 1000ms. Wenn der Code länger braucht, bestimmt dieser die Scheifen-Durchlaufszeit, d.h es ist dann so als ob die Wait-Funktion gar nicht existieren würde.
Wenn man das aber mal im Vergleich laufen lässt, also zwei parallele Whileschleifen, die eine mit wait MS und die andere mit wait next MS mutiple sieht man sehr deutlich einen Versatz, der sich durchzieht.