Mon désamour pour la gestion de l'horloge

J’ai un peu analysé la gestion de l’horloge système et le timer 0, et je ne l’aime pas du tout.
C’est consigné sur la page Mon désamour pour la gestion de l’horloge.

Le plus drôle c’est qu’affiche ce programme et pourquoi:

// Programme mystère
void setup()
{
 Serial.begin(115200);
}

void loop()
{
 // Sachant que Serial.println("tic tac"); prend environ 1/8ms
 // Qu'affiche ce programme?
 if (millis()%1024 == 42) Serial.println("tic tac");
 if (millis()%1024 == 42+43) Serial.println("tic toc");
 if (millis()%1024 == 42+43+42) Serial.println("tac toc");
}

Me reste encore des questions
Quelle est la précision à court terme de micros()? 2µs vu que l’on peut considérer que sa résolution est de 4µs et qu’au plus proche on a 2µs? 4µs vu qu’à l’instant de l’initialisation on met micros() à 0 et que 3,9999µs après elle est toujours à 0?
Quelle est alors la précision de millis()?

Il est où le tuto ?

Ici:

C'est consigné sur la page Mon désamour pour la gestion de l'horloge.

C’était pas évident de prime abord en effet.

J’ai eu le doute venant de la part d’un membre assidu du forum qu’il puisse se tromper de section.

Néanmoins, l’analyse reste intéressante

Néanmoins, l'analyse reste intéressante

Merci, mais dans la très grande majorité des cas, on se moque de perdre 4µs ou 8µs toutes les ms, car seul millis() est sensible et on n'utilise pas millis()== mais millis()>.
Je m'en suis aperçu car je joue avec un moteur pas à pas dont la gestion du comptage des pas se fait dans une fonction d'interruption qui ne dure que 6µs. Les 8µs me mettent la pagaille.