Forum Programmation.c++ Timer

Posté par  .
Étiquettes : aucune
0
15
nov.
2004

Bonjour.

J'aurais besoin d'un timer avec une précision de l'ordre de la miliseconde...

quelque chose du genre :

int traite() {
long int timer;
timer_reset(timer);
timer_start(timer);
while (timer!=1000) Traitement();
printf ("1 seconde (1000 milisecondes) à passé.");
return 0;
}

Est-ce que quelqu'un pourrait me dire comment m'y prendre en utilisant si possible des librairies standard?

Merci d'avance.

  • # Heu

    Posté par  (site web personnel) . Évalué à 4.

    Déjà un truc con :
    while (timer!=1000) Traitement();

    Si Traitement dure plus de 1ms, ta boucle ne s'arretera pas avant très longtemps (le temps de faire le tour des long), < serait plus adapté.
    • [^] # Re: Heu

      Posté par  . Évalué à 1.

      en fait c'est ce que je voulais écrire mais à l'affichage final j'avais un "&lt ;" à la place de mon caractère... Et j'ai pas trop cherché vu que j'étais pressé quand j'ai posté
  • # Vive les signaux !

    Posté par  (site web personnel) . Évalué à 2.

    J'avais eut besoin d'un timer de ce style qui soit tres precis, et j'avais utilise un signal avec detournement d'interruption. Avec les noyaux 2.4, la resolution etait au mieux de 10 ms, mais avec les 2.6 elle a du passer a 1 ms voir mieux (je ne sais plus exactement). Si cela t'interesse, telecharge les sources de mon programme "gm4lin" dispo sur http://mathias.bavay.free.fr/software/gm4lin/(...)

    Ce programme fait une lecture sur le port serie toutes les 10 ms et une ecriture des resultats integres toutes les secondes -> il y a un timer de resolution 10 ms et un timer de resolution 1 seconde, avec declenchement d'interruption a expiration du delai (et dans la version actuelle, l'implementation doit maintenant etre parfaitement POSIX et propre). En plus, un autre mode utilise un appel a "select", qui tout seul attend qu'un "file descriptor" ait un changement avant de continuer.

    Mathias
  • # gettimeofday

    Posté par  . Évalué à 3.

    gettimeofday permet d'obtenir le nombre de secondes et microsecondes écoulées depuis le 1er janvier 1970, ça devrait te convenir.

    man gettimeofday

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.