Papst-Lüfter Drehzahlerfassung!

fckw:
Also, der Atmega läuft mit 16Mhz, d.h der Intterupt Eingang wird alle 16µs abgefragt, pro Takt?
Da wäre eine Impulsrate von 20ms ja unkritisch, oder wie schnell darf ich sein?
In der Funktion "countup" ist der Interrupt für die berechnung der Zeit ja ausgeschaltet, aber was passiert im "loop"? Wird da sozusagen bei jeden Interrupt in "countup" gesprungen und dann wieder zurück und an gleicher Stelle weitergemacht?

Nein, es wird wenn dann 1s / 16 000 000 Hz = 0,0000000625 Sekunden = 62,5 Nanosekunden abgefragt.
Die Funktion loop(), bzw. egal an welcher Stelle (außer die Funkion countup()) wird der aktuelle Coder unterbrochen und zur ISR verzweigt. Danach wird dann der normale Code weiter ausgeführt und zwar genau an der Stelle wo er unterbrochen wurde.