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 :
Les edit box n'affiche rien en cours d'execution des 1000 lecture ecriture aussi ! est ce normal ?
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; } //---------------------------------------------------------------------------
Je vous remercie.
Partager