begin process at 2012 05 30 13:57:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Divers

 > 

Timer haute précision


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Timer haute précision

mardi 28 avril 2009 à 17:31:52 | Timer haute précision

pitch069

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 :

//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
mercredi 6 mai 2009 à 16:39:32 | Re : Timer haute précision

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Sur un PC où la fréquence d'horloge est fixe, tu peux utiliser RDTSC.
Tu peux calculer la fréquence du processeur à l'aide de RDTSC + QueryPerformanceCounter, puis te baser sur cette fréquence.

Dans quel cas la fréquence un processeur n'est pas fixe ?

Au moins dans le cas d'un ordinateur portable conçut pour baisser la fréquence s'il n'y a pas de besoin de temps CPU (underclocking), de manière à limiter la consommation d'énergie (Cas de mon centrino. Par contre je n'avais aucun problème à ce niveau sur un AMD athlon d'un fixe).


Cette discussion est classée dans : timer, t1, précision, nbre, tick


Répondre à ce message

Sujets en rapport avec ce message

Sortie formatée avec printf: précision [ par GoldenEye ] J'ai besoin d'afficher avec printf un double avec une précision dynamique.Par exemple, l'user rentre une précision epsilon( 0.01 par ex ) et je veux l Comment savoir le temps que prend un instruction? [ par Samoul ] Je voudrait savoir comment calculer a l'aide d'un chronomètre ou de nimporte quel autres manière le temps qye peut prendre un instruction.Ex:Timer sta Utilisation de Timer [ par nunette ] Je fais clignoter un bouton sur l'appel de SetTimer, mon problème: impossible de le killer pourtant je passe bien le même id à KillTimer que celui pas pb de class [ par bidules ] bonjour,ya un truc que je comprend pas :g 2 class (bidon):class chiffre{public :int x,y;chiffre(int a,int z); //le constructeur};class nbre{int o,pp convertir une CString en int [ par skysee ] bonjour,e n'arrive pas à convertir une CString en int.j'ai:CString nbre;int count;//traitement//maintenant nbre = "4551"je voudrais récupérer 4551 et IOSTREAM [ par hell ] Bonjour à vous tous je vous remercie de m'aiderIl arrive souvent avec iostream que je ne suis pa capable de voir mon programme il y a toujour cette e Changer l'intervalle d'un timer [ par Athanor ] Une fois que j'ai crée un timer avec SetTimer, comment je peut changer son intervalle? transfer de valeur de tableaux à tableaux [ par cabarrus ] soient 2 tbleaux t1 et t2 déclaré ainsi:float t1[10],t2[10];mon prog doit écrire les instructions permettant de recopier ds t1 tous les éléments posit Timer en C++ [ par superteta2003 ] J'aurais un besoin urgent d'un source C++ d'un timer. Pas un truc de malade mais un prog qui fonctionne en mode console!Merci d'avance!!! il manque quelque chose [ par damoun007 ] salut, il me met qu'il manque quelque chose a la ligne avec le while mais je ne sais pas quoi. Merci de m'aider. PS ce programme doit surement etre ma


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales