Funktion alle 10 ms aufrufen.
-
Hallo Zusammen,
wie im Titel bereits erwähnt, möchte ich eine bestimmte Funktion alle 10 ms aufrufen. Nun bin ich mir nicht sicher, welche Funktionen ich am besten zur Ermittlunng der Zeit nutzen kann. Was ist in C am genausten? Oder gibt es vieleicht sogar schon fertige Timer die mir die Arbeit abnehmen?
Besten Dank schon mal im Vorraus!!
-
Ja, dein Betriebssystem bietet das an (wenn's nicht zu exotisch ist) und du solltest diese Funktionalität auch nutzen. Jetzt fragt sich nur, in welches Betriebssystemunterforum ich dich verschieben soll.
-
Und die Preisfrage lautet: Für welches Betriebssystem programmierst du?
-
Du kannst die Timeout-Funktion von select nutzen.
Für welches Betriebssystem und welchen Compiler soll das denn sein?
-
Also das ganze muss unter Windows laufen und als Compiler benutze ich den gcc.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
green-sound schrieb:
Also das ganze muss unter Windows laufen und als Compiler benutze ich den gcc.
Wenn du eine GUI-Anwendung machst (bzw. ganz allgemein ein Fensterhandle hast), könntest du SetTimer nehmen. Ansonsten gibt es CreateTimerQueueTimer
Hier findest du ein Beispiel zum Einsatz der CreateTimerQueue-Methoden
Dort wird jedoch der Wert für "Period" auf 0 gesetzt, d.h. die Aktion läuft nur einmal ab. In deinem Fall einfach auf 10 ms setzen und gut ist.
-
Es handelt sich dabei nicht um eine GUI-Anwendung. Ich habe ein Datenmodell, dass ich so genau wie möglich alle 10 ms neu berechnen/aktuallisieren muss.
-
Dann solltest du dich an die verlinkten CreateTimerQueue-Funktionen halten.
-
Ich habe mir diese Funktionen gerade angeschaut. Viele dieser Funktionen nutzen einen Datentyp namens LONGLONG. Ich nutze MinGw... kann es sein, dass MinGw diesen Datentyp nicht unterstützt?
-
green-sound schrieb:
Ich habe mir diese Funktionen gerade angeschaut. Viele dieser Funktionen nutzen einen Datentyp namens LONGLONG. Ich nutze MinGw... kann es sein, dass MinGw diesen Datentyp nicht unterstützt?
Kann sein, keine Ahnung. Ich nutze nur den Microsoft Compiler auf Windows. Im Zweifelsfall kannst du dir diesen Datentyp aber auch selbst definieren. Schau einfach auf der Liste der Windows-Datentypen nach, wie der definiert ist.
-
Für deine Anforderung dürfte da am besten timeSetEvent geeignet sein:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd757634(v=vs.85).aspx
-
Burkhi schrieb:
Für deine Anforderung dürfte da am besten timeSetEvent geeignet sein:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd757634(v=vs.85).aspx
Auch eine Möglichkeit, aber inzwischen/schon länger deprecated.
Doku zu timeSetEvent schrieb:
This function is obsolete. New applications should use CreateTimerQueueTimer to create a timer-queue timer.
-
Vielen Dank GPC!! Das funktioniert wunderbar
-
GPC schrieb:
Auch eine Möglichkeit, aber inzwischen/schon länger deprecated.
Danke für den Hinweis, habe ich nicht drauf geachtet.