Vergangene Zeit in Millisekunden!
-
Hi,
ich bin schon fast am verzweifeln!
Eine Reihe von Befehlen in einer While-Schleife soll nur alle 250ms ausgeführt werden, damit diese Befehle nicht so schnell ablaufen.
Mein Problem ist jetzt das ich nicht weiß wie ich das anstellen soll!
Die Sprache wäre ANSI C++! Also das was GCC so macht.
Danke!
-
Plattformunabhängig: clock(); Such mal im Forum
-
um den prozessor nicht die ganze zeit auszulasten solltest du dir Sleep mal anschauen. heisst fuer verschiedene betriebssysteme bisschen verschieden.
-
Hallo!
Im Forum finde ich leider nichts was mich weiter bringt! Was macht clock() überhaupt? Ich bekomme nur eine 3 Stellige Zahl zurückgegeben.
-
hast du ein glück
ich hab was gefunden was dich weiter bringt...
http://www.c-plusplus.net/forum/viewtopic.php?t=24766&highlight=clock
http://www.c-plusplus.net/forum/viewtopic.php?t=25175&highlight=clock
-
nur würde es mich wundern wenn clock wirklich milisekundengenau arbeitet... bei mir jedenfalls gehts nur auf 1/12 sekunden genau und was anderes hab ich auch noch nirgendwo gehört... (auch wenn es ja eigentlich nichts gibt was dagegenspricht das genauer zu implementieren von stdlib-/compilerseite her)
-
While-Schleife soll nur alle 250ms
1/12 * 3 = 1/4 = 0,25
oder?
-
so würde ich es machen
while(true) { clock_t zeit = clock(); //arbeite zeit = clock() - zeit; if(zeit <= 250) Sleep(250 - zeit); // Sleep gibt es in <windows.h> }
-
clock muss aber nicht unbedingt Millisekunden zurückgeben. Aus der MSDN:
The clock function's era begins (with a value of 0) when the C program starts to execute. It returns times measured in 1/CLOCKS_PER_SEC (which equals 1/1000 for Microsoft C).
-
Hi,
hat sich erledigt! Die Links RPD haben mir schon geholfen!
Achso! windows.h habe ich nicht! Bringt mir bei OSX auch nicht viel, oder?:D