cyberleon
Messages postés5Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention 8 février 2006
-
13 juil. 2004 à 17:03
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
15 juil. 2004 à 17:05
salut à tous,
voila je dois réaliser un petit programme qui dois lire une valeur sur une carte (pci). Cette lecture doit se repeter tous les 10ms.
Ma question:
Sur windows, est-il possible de réaliser ce timer en etant sur qu'il me respecte la contrainte de temps de 10ms?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 juil. 2004 à 20:29
Regarde qu'on n'est pas oblige d'etre du meme avis sur le fait que cet article soit 'excellent'. On n'y envisage meme pas qu'on puisse avoir un timer qui ne genere pas de messages WM_TIMER, ce que l'on obtient en fournissant une callbck a SetTimer() et qui assure la continuite des appels, ce n'est pas le cas avec WM_TIMER car le systeme n'en empile jamais plusieurs.
Non vraiment victorcoasne, pour les sources fiables et completes c'est MSDN, Petzold et Richter. Le reste ne fournit que du machouillé prédigéré, pas avec cela qu'on progresse.
ciao...
BruNews, Admin CS, MVP Visual C++
Vous n’avez pas trouvé la réponse que vous recherchez ?
cyberleon
Messages postés5Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention 8 février 2006 15 juil. 2004 à 15:57
Mercie a tous de m'avoir répondu aussi rapide.
Après avoir fais plusieurs essais, je me suis rendu compte que le problème ne viendrait pas forcément du timer.
Tout d'abord, je vais expliquer plus précisément le problème. Je dois développer une application qui permet de lire tous les 10ms des données sur une carte pci. J'ai une contrainte c'est que l'utilisation du cpu ne dépasse pas 100%. Pour pouvoir mettre sur le même ordinateur un programme en parallèle.
J'ai crée un programme qui lit les donnée 10ms environs. J'ai donc introduit un sleep(10) et je lis une 20 valeurs différents.
Or quand j'affiche le résultat je me rends compte qui me manque des données.
Je soupçonne que sa vient de Windows ou alors du sleep car des que je fais un sleep je libère le cpu qui va l'exploitermercie a tous pour un autre prog et après la fin du sleep il ne va pas forcément revenir sur mon programme.
Ma question:
Existe t-il un code (ou une solution différente) de sleep qui me permettrais à coup de reprendre le cpu à la fin de chaque sleep ou pause du programme sans dépasser l'utilisation du cpu à 100% ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 15 juil. 2004 à 17:05
10 ms est un temps tres faible et Windows est multitache preemptif (user 1er servi) donc aucune garantie que ton prog ait la main exactement au moment voulu. Il te faudrait pour cela un multi processeur dedie avec des reglages administrateur et code adequat (SetProcessAffinityMask() etc...).