Sleep(1) dauert viel länger...
-
Hallo
Ich habe mir mit hilfe der MFC ein Programm geschrieben um eine Elektronik anzusteuern (Schrittmotore). Dazu generiere ich im Programm einen Takt und warte mit Hilfe von Sleep(1) jeweils 1 ms zwischen dem Ein und Ausschalten. Das ganze läuft über die Parallele Schnittstelle.
Insgesammt mache ich ca. 200.000 Takte zu je 2 ms => ca. 6.7 Minuten.
Leider läuft mein Programm jedoch 33 Minuten.Habe es auch einmal ohne dem Sleep(1) laufen lassen => 8 Sekunden.
Das ganze wird von einem working thread aus gemacht, welcher als Priorität: TIME_CRITICAL hat.
Hat jemand eine Idee, warum das Programm so lange braucht?
DANKE
Willi
-
Ein "Sleep(1)" dauer min. so langem wie ein "Timer-Tick" für den Scheduler. Das sind bei heutigen Systemen ca. 12-15 ms.
Du kannst diese Auflösung als Admin erhöhen, indem Du "timeBeginPerdiod(1)" aufrufst. Du wirst aber vermutlich bei heutigen System nicht unter 2 ms kommen.Du solltest Dich prinzipiell für Deine Anwendung mit den Multimedia-Timern beschäftigen.