Zykluszeit von 100 ms



  • Hallo,
    ich habe lange im Internet vergeblichst nach einer Methode gesucht, wie ich in C++ eine Berechnung durchführe, die in 100 millisekunden Zyklus neu berechnet wird.
    Gelesen habe ich, dass der Timer-Interrupt die höchste Auflösung liefert, aber wie man das programmiert wurde leider nicht besprochen.
    Ich hoffe ihr könnt mir helfen.

    Danke im vorraus.

    Gruß
    C.I.



  • übrigens programmiere ich unter Windows mit Visual C++





  • Danke für die Antwort, leider wird nicht gezeigt wie ich das Programm in einem Zyklus starte sondern nur wie ich eine Zeit messe.
    Während der Zeit die ich warte möchte ich die CPU nicht belasten, dass heißt ich möchte nicht jede msec abfragen wieviel Zeit vergangen ist.

    Gruß

    C.I.



  • Kannst doch den Rest der nicht verbrauchten Zeit mit Sleep() abwarten?



  • Delryn schrieb:

    Kannst doch den Rest der nicht verbrauchten Zeit mit Sleep() abwarten?

    Nur wenn in der Zeit andere Task's von Windows ausgeführt werden können.



  • C_Int schrieb:

    Delryn schrieb:

    Kannst doch den Rest der nicht verbrauchten Zeit mit Sleep() abwarten?

    Nur wenn in der Zeit andere Task's von Windows ausgeführt werden können.

    hö? Natürlich, Sleep beeinflusst doch nur dein Programm 😕



  • Wenn dir genaues Timing so wichtig ist verwendest du das falsche Betriebssystem.



  • Lolz schrieb:

    Wenn dir genaues Timing so wichtig ist verwendest du das falsche Betriebssystem.

    Aaah,endlich mal wieder ein richtig wertvoller Beitrag..... 👎

    Schau dir mal CreateTimerQueue und Konsorten an--->nichtblockierender,millisekundengenauer Timer mit von Windows verwaltetem Thread. Sehr,sehr praktische Sache.

    Gruss Spacelord



  • Spacelord schrieb:

    Lolz schrieb:

    Wenn dir genaues Timing so wichtig ist verwendest du das falsche Betriebssystem.

    Aaah,endlich mal wieder ein richtig wertvoller Beitrag..... 👎

    Schau dir mal CreateTimerQueue und Konsorten an--->nichtblockierender,millisekundengenauer Timer mit von Windows verwaltetem Thread. Sehr,sehr praktische Sache.

    Jaja klar, Millisekundengenau. Nur, und da hat lolz vollkommen recht. Wenn Du tatsächlich erwartest, daß Dein Programm sofort weiterläuft, wenn der Timer abgelaufen ist, dann liegst Du vermutlich ziemlich falsch. Wahrscheinlich gibt's nichtmal ne Zeitschranke wann man spätestens drankommt. Windows ist *kein* Echtzeitbetriebssystem.



  • Vielen Dank für Eure Unterstützung.
    Leider habe ich nicht die Wahl das Betriebsystem zu wechseln. Es sind auch Schwankungen akzeptabel, aber trotzdem so genau wie möglich zu sein. Der nächste Schritt wäre zu überprüfen wie hoch die Schwankungen sind.

    Was sagt ihr zu dem Timer Interrupt und weiß einer wie man dieses programmiert
    oder ist der Befehl CreateTimerQueue vorzuziehen?

    Vielen Dank für Eure Unterstützung

    Gruß Ercan


Anmelden zum Antworten