Je souhaitais demander s'il y avait une documentation de la fonction micros() sous Arm
Je souhaiterais comprendre plus en détails certaine de ces fonctions et comprendre la différence entre celui-ci et la fonction micros() sous les processeurs atmega.
Pour ceux qui ne voit pas de quel code je parle je l'insère
Pour ce que j'en sais avec la carte Arduino DUE (Arm Cortex M3), il y a un timer avec une granularité qui correspond à un cycle d'horloge, en l'occurrence 11,9 ns. Ce Timer c'est SysTick qui se décrémente à partir de la valeur initiale qui est chargée avec SysTick->LOAD.
Dans le cas de la DUE, SysTick est d'abord chargé avec 84000, il décrémente jusqu'à 0 ce qui déclenche une interruption après une ms, puis se recharge automatiquement avec 84000 et ainsi de suite.
A chaque instant on peut donc connaître où en est SysTick en lisant SysTick->VAL, puis on ajoute le nombre de ms déjà écoulées.
De fait, lorsqu'une granularité très précise est nécessaire, il est préférable d'utiliser directement SysTick.
Je souhaitais demander s'il y avait une documentation de la fonction micros() sous Arm
Si tu utilises l'IDE arduino pour programmer une carte équipée d'un microcontrôleur ARM c'est que tu as utilisé le gestionnaire de cartes pour télécharger les fonctions Wiring/Arduino correspondantes au microcontrôleur.
Le résultat de ce téléchargement se trouve dans le répertoire :
.arduino15/packages sous Linux
quelque part sous Windows
Tu y trouvera le code de la fonction micro().
Je ne pense pas qu'il existe une documentation spéciale.
ard_newbie:
Pour ce que j'en sais avec la carte Arduino DUE (Arm Cortex M3), il y a un timer avec une granularité qui correspond à un cycle d'horloge, en l'occurrence 11,9 ns. Ce Timer c'est SysTick qui se décrémente à partir de la valeur initiale qui est chargée avec SysTick->LOAD.
Dans le cas de la DUE, SysTick est d'abord chargé avec 84000, il décrémente jusqu'à 0 ce qui déclenche une interruption après une ms, puis se recharge automatiquement avec 84000 et ainsi de suite.
A chaque instant on peut donc connaître où en est SysTick en lisant SysTick->VAL, puis on ajoute le nombre de ms déjà écoulées.
De fait, lorsqu'une granularité très précise est nécessaire, il est préférable d'utiliser directement SysTick.
Super ! Merci de ces quelques explications, néanmoins SysTick est chargé a 84000 ( 84 MHZ ) tu as dis que quand il tombe à 0 cela veux dire que 1ms ce sont écoulé, cependant ce chiffre est donc stocké dans SysTick->VAL ?
Si oui, a quoi sert donc le count2 = GetTickCount(); ?
68tjs:
Si tu utilises l'IDE arduino pour programmer une carte équipée d'un microcontrôleur ARM c'est que tu as utilisé le gestionnaire de cartes pour télécharger les fonctions Wiring/Arduino correspondantes au microcontrôleur.
Le résultat de ce téléchargement se trouve dans le répertoire :
.arduino15/packages sous Linux
quelque part sous Windows
Tu y trouvera le code de la fonction micro().
Je ne pense pas qu'il existe une documentation spéciale.
Oui super merci j'avais déjà eu l'infos il y à quelques temps !