Je cherche à ordonancer une fonction, c'est à dire qu'elle se délcenche à un moment précis basé sur une échelle de temps au niveau de la microseconde ou pas loin (le compteur micros() par exemple pourrait suffir).
J'utilise des bouts de code à la "BlinkWithoutDelay", mais c'est de l'ordonnancement "relatif" qui nécéssite que le code sois lu très régulièrement, et de plus on est bien loin de l'échelle micro-seconde (µs), puisqu'on est à l'échelle de la boucle.
Ce que je souhaite c'est :
Préparer un interruption qui se lancerait lorsque le compteur de microsecondes attendrait TEL valeur.
Mais je dois à mon avis expliqer l'objectif :
Construire un signal servo (pseudo PWM) "à la mano" dont les fronts montants et déscendants s'orchestrent avec le reste du code (dont d'autres interruptions), de façon très précise.
Devrait lancer la fonction CHANGESTATE 5ms après avoir été lancée ?
J'ai volontairement utilisé une échelle à 4µs pour compliquer un peu :), et surtout parce que c'est surement l'échelle que je vais utiliser, car c'est la même que celle de la commande micros().
unisev:
Mais après tout, pourquoi changer le Timer2, pourquoi ne pas utiliser le timer0 de la commande micros() ?
Le "core arduino" travail en ce basant sur le Timer0, si tu lui change la config du timer0 tout ce qui est lié au temps (delay, millis, micros, ...) cessera de fonctionner correctement.
unisev:
Et pourquoi ne pas modifier la commande micros() directement, pour lui faire lancer des fonctions, si le compteur dépasse un nombre précis ?
Ça demanderai de modifier le "core arduino" ce qui n'est pas du tout une bonne idée, mieux vaut utiliser une librairie faite pour cela que d'aller taper dans le code bas niveau du "core arduino".