Bonjour,

je souhaite creer un Timer qui aurait une precision de l'ordre de la microseconde.

En parcourant le net, et differentes discussion sur forum, il me semble dur voir impossible de réaliser ca sous windows !

On sait jamais peut etre que quelqu'un va avoir une idée.

Pour l'instant j'ai un Timer qui aurait une précision d'a peu pres une dizaine de microseconde.

Voici mon Timer :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 #include <windows.h>
 #include <iostream>
 using namespace std;
 
 int main(int argc, char *argv[], char *envp[])
 {  
     LARGE_INTEGER f, t1;
     double nbr_seconde = 0.000030;	//Timer de 30us
     double nbr_clk; 
     double freq;    
     double time_end;
 
 
	 //Je récupere la fréquence du processeur
     QueryPerformanceFrequency( &f );
     freq = (double)f.QuadPart;
 
	 //Calcul du nombre de tick en 30us (=durée que je voudrais mon Timer)
     nbr_clk = nbr_seconde * freq;
 
 
     //Timer qui commence
 
			//Je recupere le nbre de tick d''horloge a l'instant t1 depuis la mise sous tension de l'ordi
             QueryPerformanceCounter(&t1);
 
			//Calcul du nbre de tick final = (nbre de tick en t1) + (nbre de tick en 30us)
             time_end = (double)t1.QuadPart + nbr_clk;
 
             while ( (double)t1.QuadPart < time_end )	//Je boucle tant que mon nbre de tick est inférieur au nbre de tick final
             {
                   j++;
                   QueryPerformanceCounter(&t1); //je 
             }  
     //Timer qui finit
 
     }
 
 return 0;
 }

Si quelqu'un aurait une amélioration a apporter a mon code pour que mon timer soit plus précis, ou si il existe une autre solution pour faire un Timer plus precis ?

Merci de votre aide