io farei (in pseudocodice, sono al lavoro)
unsigned int cont = 0;
unsigned long tempoInizioMs;
setup(){
Serial.begin(9600); //mi aspetto molti meno interrupt/s dalla seriale
tempoInizioMs = millis();
}
loop(){
cont++;
if (!cont){ //vediamo quanto impiega a overfloodare!
Serial.println( millis()-tempoInizioMs );
tempoInizioMs = millis();
}
}
ATTENZIONE: la prima lettura non è "accettabile" perchè c'è il "salto" da setup a loop, anche questo mangia cicli. Come insegna astro (un post moolto tempo fa) anche il richiamo ciclico della funzione loop mangia cicli; confrontate il risultato con questa! (il tempo mabngiato equyivale a salvare lo stato macchina nello stack etc..
unsigned int cont = 0;
unsigned long tempoInizioMs;
setup(){
Serial.begin(9600); //mi aspetto molti meno interrupt/s dalla seriale
}
loop(){
tempoInizioMs = millis();
while(1){
cont++;
if (!cont){ //vediamo quanto impiega a overfloodare!
Serial.println( millis()-tempoInizioMs );
tempoInizioMs = millis();
}
}
}
noterete anche che sempre per il motivo a richiamo funzione, l'errore del primo calcolo sarà più piccolo quì, poichè l'esecuzione di while(1){ è molto più leggera di un richiamo a funzione.