Hi!

Ich möchte gerne die Drehzahlüberwachung über die InputCapturePin's (ICP) [Mega64L] lösen.

Programmiert wird in e-Lab's AVRco.

Zum Initialisieren hab ich folgende Register gesetzt:
Code:
INCL(TIMSK,5);  //Input Capture enable PD4 
  INCL(TCCR1B,0); //clk 
  INCL(TCCR1B,6); //ICESn: Input Capture Edge Select
Und immer bei einem Interrupt wird folgende Routine ausgelöst:
Code:
interrupt TIMER1CAPT; 
begin 
x:=word(ICR1L)+256*word(ICR1H); 
speed:=word(abs(integer(x) - integer(xold))); 
xold:=x; 
end;
Leider funktioniert das irgendwie noch nicht wirklich, denn ich bekomme unheimlich sprigende Werte (z.B. "55,67,116,133,52,58,151,37,139,65,25,83,93,35 ") und das ICR1H-Register wird auch nicht beschrieben...

Weiß jemand an was das liegt?
Muss ich ev. bei jedem Interrupt ein Register wieder leeren o.Ä.?

Gruß, ähM_Key