Troppi interrupt?

Ciao a tutti, ho un quadricottero con controllore su Arduino Due e vorrei sapere gli RPM dei 4 motori. L'idea (per ora) è quella di attaccare un RPM sensor a ciascun motore e contare gli impulsi con una attachInterrupt(). Il numero di interrupt ricevuti al secondo arriverebbe a cifre come 500k/sec (conto fatto a spanne: 4 motori x 14 poli x 10000RPM max). Questo numero così elevato di interrupt di quanto mi ingolferebbe il loop di controllo? Per ora gira a ~500hz, e vorrei evitare calasse! Essendo il tempo di esecuzione del loop di controllo dominato dalla lettura dei sensori (del tipo 1.8ms per leggere sensori e 0.2ms per il resto), eseguire quelle 500k chiamate all'isr magari non influisce troppo? Oppure esistono alternative? Grazie mille! Michele

Non sono esperto, e non si nemmeno come calcolare la frequenza di Arduino, se me lo spiegate ne sarei felice, ma perché non usi un secondo Arduino per questo compito è gli fai trasmettere i dati al principale ogni secondo?

Mi pare un lavoro non adatto per un interrupt, mettiamo anche che gli interrupt si verifichino tutti (Punto sul quale non conterei piu di tanto), per ogni interrupt ci vuole un tempo di call particolare che dura 4 cicli di clock, poi come minimo devi incrementare un valore, quindi un clock per caricarlo in memoria, un altro per incrementare il valore e un terzo per salvare il dato siamo gia a 4+3=7 cicli di clock, aggiungi il return al punto di interrupt e il restore dei registri, come minimo arriviamo a 9/10 cicli di clock(anche su questo andrebbe verificato, probabilmente è piu alto come valore). Prendiamo il dato che hai dato tu 500kHz lo moltiplichiamo per 10 (il numero clock per interrupt) per la sola gestione degli interrupt usi circa 5MHz di clock, un po esagerato per il solo controllo velocità motori in una MCU di controllo, non credi? Il metodo non mi pare cattivo, ma forse un riduttore sui motori sarebbe meglio, oppure affidarsi al controllo fatto dagli ESC che non mi pare di aver mai sentito che non funzionani bene.