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:
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.