Accueil > Forum > > > > Timer précis
Timer précis
dimanche 7 septembre 2008 à 09:26:44 |
Timer précis

calimero63110
|
Bonjour, Je cherche a realiser un timer précis, ( maximum 5ms d'erreur ), il est réglé sur 30-40 ms, or il tick toutes les 70ms ! ( le code présent a l'interieur n'est pas tres volumineux ni long a executer. Je cherche donc par nimporte quel moyen a rendre ce timer précis. J'ai essayé via un timer avec l'api windows : SetTimer Me.hwnd, 0, 40, AddressOf TimerProc On obtiens EXACTEMENT le même resultat qu'avec le timer windows. Comment faire ?
|
|
dimanche 7 septembre 2008 à 09:37:11 |
Re : Timer précis

jmfmarques
|
Bonjour,
essaye alors de le faire "ticker" toutes les millisecondes (intervalle de 1 ms) et utilise, dans ses unstrructions, une variable static utilisant la fonction Timer, de sorte à ne lancer une exécution que si la nouvelle valeur de la fonction timer est >= 5 par rapport à ta variable static.
|
|
dimanche 7 septembre 2008 à 09:49:47 |
Re : Timer précis

calimero63110
|
C'est a dire :
A la fin du timer : tick = gettickcount
au début
Do While gettickcount < tick + 40 DoEvents Loop
c'est bien ça ?
Or je suppose qu'avec une machine peu puissante, l'équart va être encore plus important, voir ne pourra même pas ticker toutes les 40ms, non ?
|
|
dimanche 7 septembre 2008 à 11:22:41 |
Re : Timer précis

jmfmarques
|
Re,
Non ...
Le principe est le suivant (ici avec un contrôle timer ... que tu peix remplacer par ton Timer/api et la fonction Timer (que tu peux remplacer par ton GetTickCount, si tu veux).
Une Form, un timer, un bouton Lancer et un bouton Stopper
Essaye :
Private debut As Double, fois As Double Private Sub lancer_Click() debut = Timer Timer1.Interval = 1 Timer1.Enabled = True End Sub Private Sub stopper_Click() Dim duree As Double, frequence As Double duree = Timer - debut frequence = duree / fois MsgBox "j'ai battu " & fois & " fois pendant " & duree & " secondes " & _ "soit toutes les " & Format(frequence, "#0.000") & " secondes" fois = 0 End Sub Private Sub Timer1_Timer() Static toto As Double If toto = 0 Then toto = Timer If Timer >= toto + 0.005 Then fois = fois + 1 End If End Sub
Tu n'arriveras jamais à ta fréquence de 0.005 secondes, toutefois, quel que soit le procédé ... sauf si ton matériel est super exceptionnel.
|
|
dimanche 7 septembre 2008 à 11:35:01 |
Re : Timer précis

jmfmarques
|
Euh... un oubli de réiunitialisation de toto ... corrige :
Private Sub Timer1_Timer() Static toto As Double If toto = 0 Then toto = Timer If Timer >= toto + 0.5 Then fois = fois + 0.005 toto = Timer End If End Sub
|
|
dimanche 7 septembre 2008 à 12:19:46 |
Re : Timer précis

calimero63110
|
Euh la sa tick toutes les 30ms ?
C'est precis ? a 5ms pret c'est toutes les 30ms ?
|
|
dimanche 7 septembre 2008 à 13:30:09 |
Re : Timer précis

akim77
|
Bonjour,
"Or je suppose qu'avec une machine peu puissante, l'équart va être encore plus important, voir ne pourra même pas ticker toutes les 40ms, non ?"
Oui, Windows n'est pas un système temps réel donc aucune garantie sur le temps d'éxécution.
As-tu tenté de changer la priorité de ton processus ? Dans le gestionnaire des tâches, dans l'onglet Processus, clic droit sur ton processus, définit la priorité "Haute" ou "Temps réel" (Temps réel peut rendre Windows instable) Infos ici : http://sravier.free.fr/info/w2k_priorites.html et ici http://www.vbfrance.com/codes/PROCESSPRIORITY_40455.aspx
Akim
|
|
dimanche 7 septembre 2008 à 13:36:14 |
Re : Timer précis

jean_marc_n2
|
Hello, Pour des timer précis et tout ce qui concerne la gestion du temps, on pourra se référer au site de la FAQ Visual Basic et notamment à l'article : "Comment chronométrer mon programme ? Comment mesurer précisément le temps ?" : http://faq.vb.free.fr/index.php?question=176 L'article présente plusieurs méthodes, en fonction de la précision souhaitée. Cordialement Jean-Marc
|
|
dimanche 7 septembre 2008 à 15:22:12 |
Re : Timer précis

PCPT
|
salut,
précision (intervalle mini) du contrôle timer : 18ms. précision par API : 10ms
possible de passer en dessous avec les api MIDI mais c'est un gouffre de ressources et le succès dépend du processeur.
bref il doit y avoir quelque chose que tu ne nous dis pas, un contrôle timer réglé à 40ms sera fonctionnel le code dans l'évènement est peut être un peu plus long que " pas tres volumineux ni long a executer " 
++ Prenez un instant pour répondre à ce sondage svp
|
|
dimanche 7 septembre 2008 à 16:42:32 |
Re : Timer précis

jean_marc_n2
|
On atteint quand même sans soucis une résolution fiable d'une dizaine de microsecondes avec QueryPerformanceCounter, qui n'est pas un "gouffre de ressources" :-) (avec une machine à au moins 1 Ghz).
Cf. : http://faq.vb.free.fr/index.php?question=176#p5
La doc (MSDN) est indiquée en fin d'article.
(jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
|
|
Cette discussion est classée dans : timer, cherche, windows, précis
Répondre à ce message
Sujets en rapport avec ce message
cherche code pour lancer des apps se trouvant ss windows [ par Mr.Fred. ]
salut !je cherche le code pour lancer des apps windows telles que le bloc note ,la calculatrice par exemple a patir d'un exe vb.en fait je veux faire
Apis Windows [ par Johjo ]
Salut tout le monde.Je cherche un moyen d'obtenir la colonne dans laquelle est le curseur dans un textbox. Je cherche un moyen rapide.Je sais qu'avec
Windows 95, 98, Me, 2000 ou XP ? [ par MyC ]
Salut !Je cherche un moyen sûr et précis permettant de trouver la version de windows installée sur un PC.Par les API, ce n'est pas très précis, alors
Je cherche un OCX [ par hayder ]
L'expert ComptableJ'ai besoin d'un OCX qui permet de gérer des boîtes de dialogues dans des Forms. Je sais pas s'il existe mais windows et d'autres ap
timer précis, très précis... [ par themaste ]
Salut a tous!!! J'ai actuellement un prog qui me permet de connaitre le tem
Bibliothèque windows et imprimante [ par grumli ]
Bonjour,Je cherche à modifier l'imprimante par défaut à partir d'une appli VB, sous VB6. Je cherche, la bibliothèque de fonction générale de windows,
je cherche un adaptateur wireless pour windows CE [ par BosB ]
J'ai des client léger (terminaux passif qui permette de se connecter en ica, citrix, sur des bureau virtuel) que je veux mettre en reseau wiress... ce
Windows Authentication [ par MrOsmose ]
Bonjour, j'ai fouiller un peu partout ou je pouvais, mais je n'ai jusqu'a présent rien trouvé qui convenait a ce que je veux faire.en gros j'ai un pro
faire fonctionner un Timer pendant un temps précis [ par gaudreaua ]
Bonjour,je travaille avec un timer. je comprends bien qu'il boucle à tous les ... (selon le .interval que je lui donne en milliseconde)Ce que j'aimera
Service windows qui se lance au démarrage mais ne fait rien! [ par terminathan ]
Bonjour!Je suis en train de faire un service Windows ayant pour but de lancer toutes les deux minutes un .bat et un .VBs.Grâce à Renfield qui m'a aidé
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|