Timer 0 remettre paramètres de base

Hello,

J'utilise le Timer 0 pour une application, mais je désire à la fin de cette application remettre le Timer 0 dans ses paramêtres de bases afin de pouvoir utiliser la fonction delay().
Car évidemment comme je modifie les registres, ensuite je ne peux plus l'utiliser car elle ne respect plus les temps demandés.

J'ai essayé de mettre tout les registres utilisé à 0 pour faire un reset mais cela ne fonctionne pas.

Savez-vous comment puis-je récupérer les valeurs de base utiliser pour le Delay() ?

Merci

Merci de ton aide c'est super !

Je profite de demander si tu sais que ce signifie les "sbi" ? c'est un thermes à eux qu'on ne peut pas utiliser je suppose ?
Mais il suffit de l'écrire autrement en mettant par exemple dans le registre TCCR0A le bit WGM01 et WGM00 à 1 ?

Cordialement

Je dirais que ce n'est pas très malin de modifier les valeurs de registres sans les avoir lues et placée dans des variables avant ou à minima les afficher dans un terminal avec un Serial.print.

  1. tu enregistre ou tu affiche et note les valeurs des registres que tu veux modifier
  2. tu fais tes modifs
  3. tu rétabli les valeurs d'origines

Note : comme cette configuration se fait par une fonction cachée par arduino (init() qui est lancé avant setup() ), dès que tu allume le micro ou que tu fais un reset la config arduino est rétablie.

Macro sbi
Elle fait partie d'un groupe de macro Atmel qu'Atmel a abandonné au profit de _BV() (BV = Bit Vise = manipulation de bits).
Comme elles ne sont plus disponibles dans l'avr-libc, Wiring les a incorporé dans son IDE (Arduino est un fork de Wiring).

Tu peux tout aussi bien faire simplement de la manipulation de bit, personnellement je trouve que manipuler les bits est plus clair à la relecture que ces macros --> ce n'est qu'une question de perception personnelle.