Un superviseur de fonctionnement ou timer est un compteur de temps indépendant de votre microsystème et permettant de vérifier le bon fonctionnement du système. C’est souvent un compteur cadencé par l’horloge interne du microsystème.
Ce compteur a pour but de réinitialiser le microsystème lorsqu’il bug, notamment lorsque le programme est dans une boucle infinie par exemple.
Le timer fonctionne donc séparément de votre programme, et une fois qu’il sera arrivé au chiffre maximum qu’il peut compter, il va déborder et donc réinitialiser le système.
Un timer peut avoir différente valeurs : [0;255] si 8 bits, [0; 65535] si 16 bits, et [0; 2^32 -1] si 32 bits. Ces valeurs vont nous servir pour calculer la valeur maximum de notre timer.
Enfin, on peut calculer la valeur pour laquelle le timer va déborder en multipliant la fréquence d’horloge du microsystème par un prescaler.