Accueil > Forum > > > > Executer une opération à intervalles réguliers, précision à la microseconde ?
Executer une opération à intervalles réguliers, précision à la microseconde ?
vendredi 24 février 2006 à 19:45:38 |
Executer une opération à intervalles réguliers, précision à la microseconde ?

ChrisPM
|
Bonjour,
Pour un projet perso, j'ai besoin d'exécuter une opération à intervalle réguliers, mais avec une précision de l'ordre de la microseconde. Avec des millisecondes c'est pas assez précis, genre arbitrairement 70 ms c'est trop peu, mais 71 ms c'est trop grand. il me faudrait donc un intervalle quelque-part entre les deux. Je ne connais pas la fréquence exacte, puisque la milliseconde n'est pas assez précise, du coup j'ai un tâtonnement d'environ 20 ms qui me donne un mauvais résultat.
Mon projet, pour expliquer vaguement, consiste à envoyer une impulsion à un mécanisme (via port parralèle) qui as une fréquence propre à lui, mais inconnue.
Le sleep est à proscrire, je l'ai utilisé pour mes premiers essais, mais 2 inconvénients : d'une part la précision, d'autre part je ne peux rien faire pendant le sleep, alors que j'ai besoin d'exécuter des opérations également pendant le temps d'attente entre deux impulsions. (allumer et éteindre des leds)
Je sui encore (trèèèssss) débutant en C/C++ et mon appli est encore en mode console. Je développe avec code::blocks (c'est comme dev-cpp poour ceux qui ne connaissent pas).
Merci d'avance !
|
|
vendredi 24 février 2006 à 21:03:15 |
Re : Executer une opération à intervalles réguliers, précision à la microseconde ?

BruNews
|
La microseconde sur system multitache préemptif, c'est par définition impossible. ciao... [ Lien ]BruNews, MVP VC++
|
|
vendredi 24 février 2006 à 23:01:58 |
Re : Executer une opération à intervalles réguliers, précision à la microseconde ?

vecchio56
|
Conclusion: il faut passer en dos pur?
|
|
samedi 25 février 2006 à 00:23:57 |
Re : Executer une opération à intervalles réguliers, précision à la microseconde ?

racpp
|
Salut,
Je pense que c'est possible en DOS pur après avoir bloqué toutes les
interruptions matérielles (IRQ). Cela risque de poser quelques
problèmes. La durée de l'impulsion doit être calculée par rapport à la
fréquence horloge du microprocesseur. L'idéal est de réaliser une carte
à microcontroleur avec un quartz pour générer ce genre d'impulsions à
grande précision. Elle sera soit autonome soit commandée par PC.
|
|
samedi 25 février 2006 à 11:23:54 |
Re : Executer une opération à intervalles réguliers, précision à la microseconde ?

ChrisPM
|
Merci pour vos réponses !
Pour expliquer plus précisément, mon projet est un afficheur à
persistance rétiniènne, c'est à dire, une série de leds au bout d'une
tige de 30 cm qui oscille continuellement.
La tige est fixée sur le tête de lecture d'un disque-dur HS, dont
la bobine est alimentée par une pile, et commendée, via un transistor,
par le port parralèle. Le tout est maintenu en équilibre par deux
ressorts (un de chaque coté)
Le déplacement régulier de la tige permets d'afficher du texte en
faisant varier dans le temps les informations affichées sur les leds.
Ce mécanisme as donc une fréquence propre à lui, inférieure à 50 Hz
(déterminé par les ressorts et la longueur de la tige) et l'angle
d'ouverture maximal ne peut être atteint que si on envoie un signal
régulier à la même fréquence, pour entrer en résonnance.
Quelqu'un à déja fait un programme de contrôle, basé sur une boucle
infinie et une mesure du nombre de cycles écoulés apparemment (je ne
comprends pas bien son code) mais cette technique est dépendante du
processeur, si je ne me trompe pas, et utilise certainement beaucoup de
ressources.
Donc j'aurais voulu savoir si, et uniquement avec le PC, par
programmation, on pouvait faire ça différemment, par des timers par
exemple.
|
|
samedi 25 février 2006 à 11:46:17 |
Re : Executer une opération à intervalles réguliers, précision à la microseconde ?

BruNews
|
Il te faudra un OS dédié le plus proche du type 'temps réel' sinon peine perdue. Les cycles par instruction asm RDTSC, sort sur 64 bits dans EDX:EAX ciao... [ Lien ]BruNews, MVP VC++
|
|
samedi 25 février 2006 à 11:53:17 |
Re : Executer une opération à intervalles réguliers, précision à la microseconde ?

ChrisPM
|
Mouais ok... [grande déception] :D
Je vais essayer de faire comme l'a fait le gars dont je parle, avant de fabriquer un circuit de contrôle dédié alors...
Merci pour les réponses en tout cas !
PS : j'ai pas pigé la ligne " Les cycles par instruction asm RDTSC, sort sur 64 bits dans EDX:EAX "....
|
|
samedi 25 février 2006 à 12:01:58 |
Re : Executer une opération à intervalles réguliers, précision à la microseconde ?

BruNews
|
Tu as parlé des "cycles écoulés" plus haut donc... ciao... [ Lien ]BruNews, MVP VC++
|
|
samedi 25 février 2006 à 13:44:04 |
Re : Executer une opération à intervalles réguliers, précision à la microseconde ?
|
samedi 25 février 2006 à 17:35:22 |
Re : Executer une opération à intervalles réguliers, précision à la microseconde ?
|
Cette discussion est classée dans : ms, précision, opération, réguliers, microseconde
Répondre à ce message
Sujets en rapport avec ce message
Calculatrice ms visual c++ [ par Fino ]
Bonjour,quelqu'un aurait-il le source d'une calculatrice faite avec ms visual c++ comme la calc.exe de ms dans windows.si oui pouvez m'en envoyer un e
Concaténation [ par DJ God ]
[redQuel caractère utiliser pour concaténer un texte avec une variable ?][/red]
Sortie formatée avec printf: précision [ par GoldenEye ]
J'ai besoin d'afficher avec printf un double avec une précision dynamique.Par exemple, l'user rentre une précision epsilon( 0.01 par ex ) et je veux l
cacher la fenetre dos [ par ludoo7 ]
j'aimeré savoir si il y a une fonction en c++ ki permet de cacher la fenetre de commande ms-dos lors de son exécution (pour une application en fenetr
Résolution 800*600 en ms-dos [ par Boby009 NeoMorph ]
J'ai un blem. J'utilise VC++ 6 et je sais pas comment on fait (ou si c possible) pour mettre une résolution 800*600 ou 1024*768 sous DOS.QUELQU'UN PEU
J'ai besoin d'aide sur les objets fastnet [ par aurelie ]
je programme en C++ Builder. Je réalise une application qui va récupérer les données d'une feuille ASP pour les transmettre en ASP.J'utilise donc les
Calcul d'une opération en millisecondes [ par Thanatos ]
Bonjour,Comment peut-on estimer le temps d'un calcul en millisecondes sous Borland C++ ?Je fais un programme qui compare les différents tris et j'aime
Besoin d'aide sur Ms-dOs et en C [ par Remixgame ]
J'aimerais En ( C ) revenir à la racine du disque j'utilise ( system("cd \\"); ) mais ca ne marche pasRegardez mon progz si dessous !Aidez moi merci
Besoin d'aide sur Ms-dOs et en C [ par Remixgame ]
J'aimerais En ( C ) revenir à la racine du disque j'utilise ( system("cd \\"); ) mais ca ne marche pasRegardez mon progz si dessous !Aidez moi merci
Opération sur les dates [ par daddy33 ]
Comment fait-on pour faire des opérations sur des dates : exple : date de livraison - date commande ce genre de truc, quelle bibliotheque il faut incl
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|