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

C++Builder Discussion :

calcul du temps ecoulé d'une lecture d'un perepherique usb


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 24
    Par défaut calcul du temps ecoulé d'une lecture d'un perepherique usb
    Bonjour à tous,

    Mon programme communique avec un microcontroleur via USB !

    j'utilise un module rs232/usb .

    je desire calculer la durée exacte que mes mon programme pour recuperer une donné du microcontroleur.
    L'operation à chronometrer englobe :
    - l'envoi d'une commande au microcontroleur.
    - des insctructions que effectue le microcontroleur lui mem.
    - lecture de la donnée envoyé par le microcontroleur.

    Pour cela j'utilise un timer, que j'active au debut d'une operation de lecture et que je desactive à la fin.
    l'intervalle du timer est de 1 ms et j'incremente une variable nb à chaque periode !

    Maintenant j'essaye de chronometrer 1000 ecriture/lecture et ce qui ce passe c'est que le programme met plus que 2 seconde pour terminer les 1000 lecture, le timer par contre ne se declenche jamais, et la variable nb reste tjs à 0 !!!!!!!

    est ce que quelqu'un aurait une explication à ça / autre idée !

    Voila le code que j'ai ecrit :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    //---------------------------------------------------------------------------
     
     
     
     
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    Timer2 ->Enabled = true;
     
    for (i = 0; i < 1000; i++) {
     
     
    strcpy(RBuffer2,"begin\r");
    	TxQueue = 6 ;
    	ftStatus = FT_Write(ftHandle1,RBuffer2,TxQueue,&nb_ec);
    	while (RxQueue<4)
    	{
    	   buf_stat();
    	}
     
     
     
     
     
    	ftStatus = FT_Read(ftHandle1,RBuffer1,RxQueue,&nb_lu);
     
     
     
    	AnsiString AAA;
    	AAA = RBuffer1;
     
    	c_data = StrToInt("0x"+AAA) ;
    	tension = c_data * 5.000/4096   ;
    	AAA = tension ;
    	Edit1 ->Text =   AAA   ;
     
     
    	}
    	Timer2 ->Enabled = false;
    	Edit2 ->Text = nb;
     
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Timer2Timer(TObject *Sender)
    {
    nb = nb + 1;
    }
    //---------------------------------------------------------------------------
    Les edit box n'affiche rien en cours d'execution des 1000 lecture ecriture aussi ! est ce normal ?

    Je vous remercie.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Sans doute en utilisant, non pas un TTimer mais la fonction GetTickCount !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int Start = GetTickCount();
    //Le traitement
    //..
    int Gap = GetTickCount() - Start;
    Le Gap ici, en gros, à +/- 1 ms.

    Si le traitement dure moins de 1ms ... alors il faudrait un timer de précision... Donc faire une recherche sur ce forum.

    A plus !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 24
    Par défaut
    Merci henderson pour ta reponse ! ça marche bien !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/01/2010, 13h14
  2. Calcul du temps passé dans une boucle for
    Par Hydro999 dans le forum R
    Réponses: 3
    Dernier message: 28/07/2009, 19h39
  3. [XL-2003] Calculer le temps passé dans une boucle for
    Par mancired dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/05/2009, 15h06
  4. Aide pour un script qui calcule le temps passé depuis une date
    Par Mooneer dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 25/05/2008, 15h23
  5. Réponses: 1
    Dernier message: 10/05/2007, 13h22

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