Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1636 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  timer précis

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

timer précis

n°1358149
BigBulle
Posté le 02-05-2006 à 21:57:56  profilanswer
 


Salut à tous :),
 
Je suis en train de développer en C++ sous VS2005 et j'aurais besoin d'un timer ayant une précision de l'ordre de la milliseconde.
Je sais que sous Windows, il est difficile de descendre en dessous des 10 ms.  Cependant je me demandais s'il n'existait pas une sorte de driver Timer tournant au niveau kernel à qui je pourrais filer un pointeur vers la fonction que je désir effectuer périodiquement.
 
Si vous aviez l'une ou l'autre idée, piste, suggestion, ce serait vraiment génial!
 
A+,
 
BigBulle :)

mood
Publicité
Posté le 02-05-2006 à 21:57:56  profilanswer
 

n°1358150
Joel F
Real men use unique_ptr
Posté le 02-05-2006 à 21:58:28  profilanswer
 

QueryPerformanceCounter je pense :)

n°1358155
BigBulle
Posté le 02-05-2006 à 22:19:25  profilanswer
 

Merci beaucoup! J'vais aller regarder ça.

n°1360674
klfir
Posté le 05-05-2006 à 20:43:48  profilanswer
 

Voici une class que j'ai développé pour que les animation opengl ou directx puisse touner a la même vitesse sur toutes les machines (technique utilisé dans tous les jeux) utilisant QueryPerformanceCounter
 
 
fichier .h
//---------------------------------------------------------------------------
#ifndef Clock_H
#define Clock_H
 
class Clock
{
private:
    bool PerfTime;
    LONGLONG Frq,Time0,Time1;
    float OneTick,dt;
public:
    Clock();
    ~Clock();
    void Initialise();
    float GetTime();
};
//---------------------------------------------------------------------------
#endif
 
fichier .cpp
 
#include "Clock.h"
 
Clock::Clock()
{
}
 
Clock::~Clock()
{
}
 
void Clock::Initialise()
{
    PerfTime=QueryPerformanceFrequency((LARGE_INTEGER*) &Frq);
    if (PerfTime)
    {
        //on peut lire le temps à l'aide du compteur de performance
        //alors on le fait
        QueryPerformanceCounter((LARGE_INTEGER*) &Time0);
        OneTick=1.0f/Frq;
    }
    else
    {
        //on peut pas lire le compteur de perf. Bon on utilise aut chose
        Time0=timeGetTime();
        OneTick=0.001f;
    }
}
 
float Clock::GetTime()
{
    if (PerfTime)
        QueryPerformanceCounter((LARGE_INTEGER*) &Time1);
    else
        Time1=timeGetTime();
 
    dt=(Time1-Time0)*OneTick;
    Time0=Time1;
    return dt;
}
 
//-------------------------------------------------------------
 
 
dt te renvoi le temps entre l'appel a la fonction initialise et la fonction gettime.
 
Voila, j'espère que cela t'aidera.

n°1364199
BigBulle
Posté le 11-05-2006 à 14:03:37  profilanswer
 

Merci pour ta réponse :) !
 
J'ai enfin terminé une permière ébauche de mon programme et fait quelque test. J'ai utilisé le timer multimedia de windows.
 
Ce timer est très précis (<1 ms). Cependant, dans certains cas (rafraichissment d'écran, etc...) je perds la main pendant plus de 500 ms.
J'imagine que c'est du au squeduler de windows...(j'connais pas trop les entrrailles de windows).
 
Pour mon application, j'ai besoin d'exécuter une fonction une fois toutes les 100 ms, même si c'est parfois 105 parfois 95 ms.
 
Existerais-t-il une espèce de driver timer tournant au niveau kernel à qui je pourrais filer un pointeur vers ma fonction à exécuter tous les 100 ms?
(Un peu dans le genre des drivers ASIO)
 
Merci beaucoup d'avance!

n°1364205
_darkalt3_
Proctopathe
Posté le 11-05-2006 à 14:05:41  profilanswer
 

BigBulle a écrit :

J'ai utilisé le timer multimedia de windows.
 
Ce timer est très précis (<1 ms).


 
En fait je l'ai utilisé, et c'est plus du 4ms de précision.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  timer précis

 

Sujets relatifs
Un bon Timer bien complet.[GTK] Positionnement précis de texte dans une DrawBox [Auto Résolu]
timer2 pages avec timer
choper un bout de chaine de caractere précisTimer en console
Un timer pour un boutonRécupérer un élément précis du formulaire
Outils de stats précis et fiable ?Objet Timer sous VBA
Plus de sujets relatifs à : timer précis


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR