Leggere il numero di giri di una vetola PC Nexus

uh questo è il codice con gli interrupt.
allora
int NbTopsFan;

deve essere volatile se no ci sono casini con il modo in cui viene otimizzato il codice quindi
volatile int NbTopsFan;

poi inizializzala a 0
voaltile int NbTopsFan = 0;

sei() e cli() toglie, ance perdi un valore chissene. Piuttosto alza il delay a 10 secondi, che diminuisci l'errore, e anche elimina l'uso dell'array che non capisco perchè lo usi, tanto vale che metti direttamente 2, che velocizzi il codice.

sa questo punto il numero di rpm deve essere corretto per forza!