Hallo,
ich versuche z.Zt. einen Timer in C unter Windows zu programmieren. Hierzu benutze ich time.h und sys/timeb.h.
Ich habe vor, drei verschiedene Funktionen nacheinander eine gewisse Zeit arbeiten zu lassen. So soll eine Funktion z.B. 100 Millisekunden eine bestimmte Ausgabe machen und dann die nächste Funktion 100 Millisekunden eine andere Ausgabe usw.
Ich habe den Timer so realisert, dass ich die augenblickliche Systemzeit auslese und dann 100 Millisekunden hinzuaddiere. Dann lese ich in einer while Schleife so lange die Systemweit aus, bis diese der ersten gelesenen Systemzeit plus der 100 Millisekunden entspricht.
Das Problem ist, dass das Auslesen der Systemzeit auch einige Zeit lang dauert und ich somit nie genau auf eine Zeit pro Funktion von genau 100 Millisekunden komme. Weiß vielleicht jemand von Euch, wie ich sonst noch einen Timer, der dann natürlich genauer sein soll, realisieren kann. Bietet C da noch andere Möglichkeiten?
Danke!
ich versuche z.Zt. einen Timer in C unter Windows zu programmieren. Hierzu benutze ich time.h und sys/timeb.h.
Ich habe vor, drei verschiedene Funktionen nacheinander eine gewisse Zeit arbeiten zu lassen. So soll eine Funktion z.B. 100 Millisekunden eine bestimmte Ausgabe machen und dann die nächste Funktion 100 Millisekunden eine andere Ausgabe usw.
Ich habe den Timer so realisert, dass ich die augenblickliche Systemzeit auslese und dann 100 Millisekunden hinzuaddiere. Dann lese ich in einer while Schleife so lange die Systemweit aus, bis diese der ersten gelesenen Systemzeit plus der 100 Millisekunden entspricht.
Das Problem ist, dass das Auslesen der Systemzeit auch einige Zeit lang dauert und ich somit nie genau auf eine Zeit pro Funktion von genau 100 Millisekunden komme. Weiß vielleicht jemand von Euch, wie ich sonst noch einen Timer, der dann natürlich genauer sein soll, realisieren kann. Bietet C da noch andere Möglichkeiten?
Danke!