bonjour,
j'ai ecrit une petit routine qui lit le port serie( 115200 baud) a travers vba et affiche le resultat sur un graphe.
En fait je lis lis a travers un micro plusieurs register I²C
( 6registres) mais je n'arrive pas a lire toutes mes datas car ells sont cadence a 800HZ, ma boucle rate une ou plusieurs valeurs.
J'aimerais pourvoir lire mes registres toutes les 1ms .
Y' a t'il un moyen de ne plus vaoir de latence dans mes lecture ou de forcer une lecture toutes les 1ms?
Ci dessous mon code :
Merci
Philippe
Do While CB_RUN_DEMO.Caption = "STOP"
ec.AsciiLine = "R01-06" lecture des 6 registres a travers RS232
ec.WAITmS = 0.1
n = ec.AsciiLine
Bonjour,
Essaye plutôt de passer par un tremplin (un tableau dynamique, par exemple) que tu alimentes par les données brutes. Cela réduira considérablement la durée de chaque enregistrement (évitera tant les calculs que la mise à jour de tes cellules)
Utilise in fine ce tableau pour faire toutes tes opérations et mises à jour.
Bonjour,
merci pour cette suggestion je vais regarder .
Par contre si je ne veux pas afficher de resultats sur un graphe mais juste faire des accès sur le port série, y'a til le moyen de controler ou de forcer le temps de la boucle?
Le but etant toujours de recuperer les informations toutes les 1 ms .
Le code serait le suivant :
Do While CB_RUN_DEMO.Caption = "RUN"
ec.AsciiLine = "R00" 'lecture continue de ce registre
ec.WAITmS = 0.1
If ec.AsciiLine = 1 Then
ec.AsciiLine = "R01-06" 'register "x y z" 01 to 06
ec.WAITmS = 0.1
n = ec.AsciiLine
End If
Loop
Actuellement cette boucle est trop lente .je voudrais garantir que cette boucle ( quand le registre 00 passe a 1) se fasse en moins d'1ms, en considerant que les lectures des registres elle memes se fasse en quelques µs)