Il y a un an, j'ai fais un petit sketch sur un arduino uno qui me décode un trame. Pour cela , j'utilise le timer2 de l'arduino et je génère une interruption tous les 200ms.
Aujourd'hui je voudrais adapté le meme sketch pour qu'il tourne cette fois ci sur un esp8266 (node mcu) avec l'arduino core. Sauf que d'après ce que je vois, il n'y a pas exactement d'équivalent direct au timer2.
Sur l'arduino uno, c'etait assez facile de trouver de l'info. Sur l'esp8266, je galère un peu. Je trouve parfois quelques exemples, mais ils sont trop compliqué pour moi (comme par exemple dans la librairie servo de l'esp8266), ou bien j'ai l'impression qu'il sont ecrit directement en C pour être compilé avec le SDK d'expressif.
Du coup je me demande si quelqu'un dans le coin aurait utilisé un timer sur l'esp8266 avec l'arduino core.
Ha oui je l'avais vu mais je pensais que c'était précis pour des centaines de ma et non a la milliseconde près.
Je ne trouve pas d'info à ce sujet sur le Github de cette lib.
2ms c'est 500Hz - ça peut rester jouable dans la loop suivant ce que vous faites par ailleurs
La librairie pointée par 3Sigma utilise os_timer (capable de gérer 7 timers) implémentée en logiciel qui sera moins prioritaire que l'unique hw_timer (qui pilote tout cela en hard mais donc ausssi le wifi, PWM etc) donc suivant l'activité Wi-Fi vous ne pourrez pas garantir le timing exact.
Il y a quelques temps (fin 2015) il y avait eu des tests qui montraient que en dessous de 2ms vous plantiez la stack wifi, je ne sais pas si les firmware récents ont fait progresser la situation
Il vaut mieux aussi mettre un yield(); ou un delay(0); dans votre loop() pour laisser un peu de temps à l'OS de votre ESP aussi...