Naja wenn man so ein bisschen rechnet dann wäre für diese Drehzahlen doch die Methode mit dem "Zeitabstandmessen" besser geeignet.

Weil 3000rpm = 50Hz, (Unter der Annahme, dass eine Umdrehung genau einen Impuls auslöst)

-> Wenn man eine Sekunde Zeitfenster macht, bekommt man 50 Impulse rein -> wie oben schon gesagt die Auflösung in +- 60rpm, klar.

Wenn man annimmt, der Mega8 ist mit 8Mhz getaktet, dann kann er den Zeitlichen Abstand (zumindest theoretisch) in 125ns - Schritten messen, und bei einer Frequenz von 50Hz wäre ein Fehler von +-125ns weniger als 0,001 % was entsprechen würde +- 0,018 rpm.

Soweit wenn man es theoretisch in den Taschenrechner eintippt, praktisch wäre es halt genauer als man es dann am Display anzeigen wird.

Nur das Problem dabei ist, wenn sich der Motor beim Starten sehr langsam dreht, dann kommen da riesige Anzahlen von 125ns Schritten heraus (bei 60rpm eben 8Mio, klar) , die man mit der Software halt bewältigen muss, aber mit Timer1 könnte das schon gehen, denke ich.

Kritisch würde es bei dieser Art der Messung ja erst werden, wenn man sich dem Systemtakt annähern würde, sich der Motor also mit Millionen Umdrehungen pro Sekunde drehen würde, aber das ist ja nicht der Fall

Ich würde es hier auf jeden Fall über "Zeitabstand messen" machen, also den Impuls per Interrupt in den AVR, und in der ISR Timerstand von vorher auslesen, Timerstand resetten, Timer weiterlaufen lassen und auf den Nächsten Impuls warten

Zeitfenster machen eher Sinn, wenn man z.B. ein Display hat, das einem die Frequenz ( in 1Hz Schritten) eines Signals anzeigen soll, dessen Frequenz sehr variabel ist. Die Frequenzanzeige meines Eigenbau - Funktionsgenerators habe ich so gemacht, auch mit ATmega und Bascom.

Soweit meine Meinung

Mfg Thegon