le 05-04-2016 04:21 AM
Bonjour,
Dans la dll Kernel32, il existe une fonction du nom de QueryPerformanceCounter, qui est un compteur avec une précision de l'ordre de la microsecond.
J'utilise ainsi un timer utilisant cette fonction, cependant, j'ai pour calibrer et valider la pécision de ce timer utilisant cette fonction.
Quelqu'un saurait comment je pourrais m'y prendre ?
(Le vi ne vient pas de moi, c'est un VI partagé par un utilisateur du forum)
Merci
05-04-2016 06:19 AM - modifié 05-04-2016 06:20 AM
Je connais cette fonction ... et je pense bien que la fonction native LV "High Resolution Relative Seconds" l'utilise.
le (premier) soucis est ta question elle-même :
" J''utilise ainsi un timer utilisant cette fonction, cependant, j'ai pour calibrer et valider la pécision de ce timer utilisant cette fonction. "
Alors ... je l'ai lue et relue 5 fois ... je ne la comprends pas !
Celui qui la comprend est un fameux malin.
le 05-04-2016 06:22 AM
Bonjour,
désolé moi aussi je n'ai pas compris ce que j'ai écrit 😛
J'ai besoin de calibrer le timer et ainsi de valider son fonctionnement. voici ce que je voulais dire.
Merci
le 05-04-2016 07:39 AM
plutôt que la dll kernel32, tu devrais utiliser ça :
Pour ce qui est de la calibration, je n'ai pas de ciseaux assez fin pour couper les cheveux en 4, amuse toi bien.
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
le 05-04-2016 08:07 AM
Merci de ta réponse
Les temps que je calcule sont de l'ordre de 2/3ms. la dll convient pour mes besoins. Cependant, mon exemple et le tien utilise tout deux des horloges windows, ce qui ne plait pas trop à mon client.
Je dispose d'un chassis compact DAQ 9178, qui, d'après la documentation, possède des compteurs internes.
Penses tu qu'il est possible d'utiliser la même fonction que celle que tu m'a montré mais en se basant sur l'horloge du chassis ?
Merci
le 05-04-2016 08:11 AM
C'est la durée de quoi que tu veux mesurer?
Bien entendu, dans la mesure du possible il faut faire une acquisition à fréquence fixe de ce que tu observes/mesures pour pouvoir donner une durée précise, et ainsi ne rien laisser à la merci de l'OS.
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
le 05-04-2016 08:15 AM
Je mesure des temps de transfert de commande. Ces temps peuvent varier en fonction de certains paramètres.
C'est moi qui emet la commande (point de départ t0), et j'attends de recevoir la commande à la suite d'une boucle matérielle(t1). Je dois donc calculer le temps entre mon t0 et mon t1.
Si je pouvais utiliser l'horloge de mon chassis plutot que celui du PC (via la dll Kernel32), ce sera pour moi déjà une bonne étape car l'horloge windows n'est pas forcémenent la même sur tout les pc.
Merci
le 05-04-2016 08:28 AM
Mehdi94 a écrit :Je mesure des temps de transfert de commande. Ces temps peuvent varier en fonction de certains paramètres.
C'est moi qui emet la commande (point de départ t0), et j'attends de recevoir la commande à la suite d'une boucle matérielle(t1). Je dois donc calculer le temps entre mon t0 et mon t1.
Si je pouvais utiliser l'horloge de mon chassis plutot que celui du PC (via la dll Kernel32), ce sera pour moi déjà une bonne étape car l'horloge windows n'est pas forcémenent la même sur tout les pc.
Merci
C'est pas encore assez clair pour moi.
Quand tu parles d'émission de commande, c'est un message envoyé du PC? vers un autre équipement? sous quelle forme?
Et la réception, il s'agit de quoi?
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
05-04-2016 08:31 AM - modifié 05-04-2016 08:40 AM
Ah oui désolé j'ai pas été clair sur ce sujet.
Ce sont des commandes envoyées par un module de sorties numérique à travers un équipement, il en revient une commande que je connecte à un module d'entrées numériques.
C'est un peu comme si je rebouclais une sortie sur une entrée et que je calculais le temps qui s'écoule entre l'émission et la réception.
J'espère avoir été un peu plus clair.
Merci