Velocità del loop Mega 2560

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.