Der Code ist von mir. Im Prinzip braust du nur diesen Teil. Wenn du weniger als 1000 Umdrehungen messen willst mußt du noch den Überlauf des Timers berücksichtigen.

Code:
Do 
Bitwait Pinb.0 , Reset 
Start Timer1 
Timer1 = 0 
Bitwait Pinb.0 , Set 
Bitwait Pinb.0 , Reset 
Stop Timer1 
Count1 = Timer1 
Count1 = 1000000 / Count1 
Count1 = Count1 * 60 

Rpm = Int(count1) 
 Loop 
End
Du hast zwei Möglichkeiten die Drehzahl zu messen. Einmal zählst du die Impulse über eine bestimmte Zeit, oder die Umlaufgeschwindigkeit messen. Ich benutze hier die Umlaufgeschwindigkeit.

Das Prinzip ist folgendes. Ich warte auf eine steigende Flanke, dann auf eine fallende Flanke, und wenn dann wieder eine steigende Flanke kommt habe ich eine Umdrehung, und aus der gemessenen Zeit rechne ich die Drehzahl.

Wenn du die Impulse zählst wird das nicht so genau, sagen wir mal du zählst die Impulse währen einer Hundertstelsekunde. In dieser Zeit kann deine Drehzahl sich viel verändern und dein Ergebnis ist falsch.