Pages: 1 [2]   Go Down
Author Topic: Signal Rx pour l'arduino  (Read 1708 times)
0 Members and 1 Guest are viewing this topic.
Paris
Offline Offline
Sr. Member
****
Karma: 2
Posts: 366
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

MODE pulsIn() :
Chaque commande pulseIn() ne fait rien d'autre qu'attendre, à partir du moment ou elle est lancée, juqu'à :
  • Ce que le signal monte, elle horodate ce front montant...
  • Quand le signal redéscent, elle horodate ce front déscendant et calcule la durée de l'état haut et te la retourne
Ensuite seulement elle rend la main... à la commande pulseIn() suivante.

C'est donc une très mauvaise utilisation du contrôleur qui passe beaucoup de temps à attendre  smiley-wink

Le pire cas est le suivant :
Tu lance la commande pendant que ton signal est haut... il va attendre 20ms pour compter le signal complet suivant... si ça t'arrive sur chacun des 4 canaux, tu perd 80ms à ne rien faire.
Le meilleur des cas :
Si tes commandes arrivent dans le bon ordre juste avant les fronts montant (ce qui n'est pas prévisible) tes pulsIn() dureront de 4ms à 8ms environ.

MODE INTERRUPTION :
En mode interruption, chaque interruption (front montants & descendants de chaque canaux) ne prend environ que 4µs donc pour 4 canaux, tu consommeras 32µs.

RESUME :
Donc pour résumer, pulsIn() consomme entre 4ms et 80ms.
Le mode interruption consomme 32µs (c'est à dire 0,032ms) de façon stable et sans jamais "rater" un créneau.
« Last Edit: March 28, 2013, 06:31:50 am by UniseV » Logged

EN: Libraries are my Gurus, they make me believe anything they want !
FR: Les librairies sont mes gourous, elles me font croire ce qu'elles veulent !

Pages: 1 [2]   Go Up
Jump to: