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.


Anmelden zum Antworten