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
Lesezeichen