IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Fonction interruption en nanosecondes ?


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Points : 5
    Points
    5
    Par défaut Fonction interruption en nanosecondes ?
    Bonjour,

    Donc voilà je suis nouveau sur ce forum

    Je suis entrain de creer un soft pour controller des servomoteurs par port paralléle, et en faite il faut que j'envoi un signal d'une durée entre 0.8ms et 2.4ms pour sa position toutes les, environs, 20ms.
    Le probléme c'est qu'avec sleep, c'est en ms... et moi j'ai besoin de 0.8ms ou 2.4ms.
    Connaissez vous une fonction capable d'interupt en nanosecondes par exemple?
    Je prog sous windows.

    Merci d'avance

  2. #2
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Bienvenue.

    Il n'y a rien en C++ qui garantisse cette précision. Mais le forum "développement windows" pourra vraissemblablement te renseigner plus sur ce qui est propre à windows. Demande à un modérateur d'y déplacer ton message.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    La chance...
    Mais t'es sur ???
    oui pourquoi pas le deplacer, désolé de m'être trompé ^^

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 95
    Points : 92
    Points
    92
    Par défaut
    En vb.net, pour mesurer un interval de temps entre 2 reponse réseau sur un thread d'ecoute, j'utilise deux date.now ( t et a t+1); puis un time span qui me donne un interval sur une base de 100 ns (enfin ca c'est ce que dit la framework).
    Si ca peux t'aider...

  5. #5
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par windowsfashion
    Je suis entrain de creer un soft pour controller des servomoteurs par port paralléle, et en faite il faut que j'envoi un signal d'une durée entre 0.8ms et 2.4ms pour sa position toutes les, environs, 20ms.
    Il faut soit développer un service soit un Device Driver ....( avec VC++)
    ce sont des couches logicielles en-dessous de l'OS donc qui apportent plus de rapidité pour l'acquisition de données.
    Si tu te limites aux API de l'OS tu seras limité..

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    arg... je suis pas ingenieur, j'ai des connaissances mais pas beaucoup plus lol
    donc en résumé c'est chaud...
    J'ai cherché sur le net mais c'est peut etre un peu trop pointu pour retourner des resultats...

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    personne ne connait de méthode un peu plus simple?
    merci d'avance

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    Bon j'ai trouvé!
    Si sa interesse quelqun faites une recherche sur

    QueryPerformanceCounter();
    ( QueryPerformanceFrequency(); )


  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 95
    Points : 92
    Points
    92
    Par défaut
    C'est une bonne nouvelle car le sujet m'interesse aussi
    (Je perd 60 ms quelque part et j'aimerais bien savoir ou) !
    Je regarderais ca plus tard.
    Merci.

  10. #10
    mat.M
    Invité(e)
    Par défaut
    QyeryPerformanceCounter n'est qu'un moyen de chronométrer ,de manière très précise.
    Mais cela ne permet pas d'avoir des process parfaitement synchrones.
    Je conseille vivement de faire un service ou un Device Driver..

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    je vais me limiter a query ( une boucle qui test la variable renvoyé jusqu'à atteindre le nb X en nanosecondes )

    Sinon je suis pas un pro, comment vous faites pour inserer un process multithread dans une classe?

    DWORD WINAPI Servo(LPVOID lpParam) // THREAD de gestion

    Comment qon fait? ^^

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    sa a l'air trés interessant les devices drivers, si t'aurai des docs se ne serai pas de refus

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 95
    Points : 92
    Points
    92
    Par défaut
    Pour les threads, si tu programme en .net (?), tu as des bons tutaux au niveau de programmation reseau (j'ai plus les refs, mais si je les retrouve je les poste).

    En gros:

    Imports System.threading

    public maClasse
    Dim monThread as Thread

    public sub ceQueJeVeuxThreader()
    ...
    end sub

    public sub creationThread()
    monThread = new thread(AddressOf Me.ceQueJeVeuxThreader)
    monThread.Start()
    end maSub
    End Class

    (C'est simple, sauf au niveau de la levee d'evenement pour l'interface graphique; point sur lequel j'ai eu quelques problemes...).

    Bon courage.

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    Merci pour le code, mais malheuresement je programme en C++ non .net
    Quelqun sinon? please...

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    u p ^^

  16. #16
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    Un nouveau thread ne changera rien. Tu peux arriver à bricoler un truc qui marchouillera en faisant une boucle sans fin qui fait du QueryPerformanceCounter(), mais Windows n'est pas temps réel et tu n'auras aucune garantie de respect de délais. C'est comme ça

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 95
    Points : 92
    Points
    92
    Par défaut
    si c'est pour une seule application,
    tu pourrais passer par un petit montage electronique;
    peut-etre même que radiospare, conrad... vendent des kits a base
    de quartz ou microcontroller; en plus ca evite de griller le port parallele
    (car de toute facon tu avais peut etre prévu une carte d'isolation).
    Je me souviens de montages a base de NE555; mais je ne me souviens plus des bases de temps minimum.

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    merci pour vos reps

Discussions similaires

  1. Interruption de fonction bloquante
    Par madmox dans le forum C
    Réponses: 2
    Dernier message: 05/06/2008, 22h03
  2. Réponses: 7
    Dernier message: 27/05/2008, 23h23
  3. [TASM][Débutant] Fonction 0AH de l'interruption 21h
    Par Punkfloyd1967 dans le forum x86 16-bits
    Réponses: 1
    Dernier message: 13/04/2008, 14h08
  4. fonctions de l'interruption 80
    Par emmesse dans le forum Administration système
    Réponses: 7
    Dernier message: 11/06/2007, 14h45
  5. Fonctions d'interruptions en C
    Par amadoulamine1 dans le forum C
    Réponses: 10
    Dernier message: 09/04/2007, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo