Page 1 sur 1

Tempo inférieure à 1ms en C

Publié : 29 mai 2005 8:41
par JP
Bonjour à tous,

Est-il possible d'avoir une tempo inférieure à la milliseconde sur un PC et en C ?

a+
JP

Publié : 29 mai 2005 11:29
par Sly
Salut JP :)

essai de regarder si tu as acces à la variable d'environnement TickCount

en gros :
dim nb as double (en vb désolé :lol: )
nb = Environment.TickCount

+

Publié : 29 mai 2005 11:35
par JP
Salut Sly :-D ,

Merci, je vais me documenter là dessus.

a+
JP

Publié : 29 mai 2005 11:53
par JP
J'ai trouvé que TickCount renvoie le temps en milliseconde depuis le démarrage du PC.
Donc apparemment, on ne peut avoir une tempo inférieure à la milliseconde :(

Je continue à chercher.

Publié : 31 mai 2005 11:01
par hdan
Bonjour,

Oui, à la µs. (en vc++ toujours)

fonction a voir:
QueryPerformanceCounter();

faire un fonction style:
int uwait(unsigned long usecs)
// returns -1 si pas supporté 0 si ok
{
__int64 end;
__int64 freq; //the frequency used by PerformanceCounter
__int64 lasttime; //last time counter was queried

if (!QueryPerformanceFrequency((LARGE_INTEGER*)&freq))
return (-1); // error hardware doesn't support performance counter
QueryPerformanceCounter((LARGE_INTEGER*)&lasttime);

end= lasttime + usecs * freq / 1000000; // Conversion des
microsecondes en coup d'horloge.
do
{
QueryPerformanceCounter((LARGE_INTEGER*)&lasttime);
} while (lasttime < end);
lasttime=end;
return (0);
}

Publié : 31 mai 2005 11:10
par hdan
mis a part qu'il faudrait virer les init et faire gaffe au moment
ou l'on prend
QueryPerformanceCounter((LARGE_INTEGER*)&lasttime);
le tmps n'est pas compté avant.

Publié : 31 mai 2005 11:19
par JP
Merci hdan :wink: