Hallo, ich möchte die Drehzahl eines 12V Lüfters anzeigen und stecke da mit der auswertung fest. Der Lüfter ist wie gesagt an 12V angeschloßen, wobei das Tachosignal mit einem 10K Pullup an den ICP-Pin des Mega16 geht.
Mein Code ist folgender ...
Ich beckomme bei langsam laufendem Lüfter eine Drehzahl von ca. 13000 angezeigt, die ab und an auf ca. 800 springt. Könnte mir bitte jemand helfen ?

Code:
Config Timer1 = Timer , Capture Edge = Falling , Noise Cancel = 1 , Prescale = 256
On Capture1 Timer_icp
Enable Timer1
Enable Capture1
Enable Interrupts
.
.
.
.
.
.
.
Timer_icp:
   Dim Icp_neu As Word , Periode As Word
   Icp_neu = Capture1

   If Icp_neu > Icp_alt Then
      Periode = Icp_neu - Icp_alt
   Else
      Periode = Icp_alt - Icp_neu
      Periode = 65536 - Periode
   End If
   Icp_alt = Icp_neu

   'Debug_lcd = Periode

   Fan = 1875000 / Periode
   Fan_active = 1
Return