Hi,
ich möchte mit dem Timer 1 die Pulsbreite zwischen einer steigenden und
Fallenden Flanke messen (PWM).
Die Flanken werden mir auch korrekt auf dem Oszi angezeigt, wenn ich im
InterruptHandler Testweise jeweil eine Flanke ausgeben lasse.
Aber die Werte der Input Capture sind immer 0. Die Frage ist, ob der
Capture-Wert jedesmal von neuem "losläuft", wenn der Interrupt startet?
Hier der InterruptHandler Code.
void TIM1_CC_IRQHandler(void)
{
if(TIM1->CCER & TIM_CCER_CC2P) //fallende Flanke
{
ReadValue2 = TIM_GetCapture2(TIM1);
Pulsbreite = ReadValue2 - ReadValue1;
TIM1->CCER &= ~TIM_CCER_CC2P;
}
else //steigende Flanke
{
ReadValue1 = TIM_GetCapture2(TIM1);
TIM1->CCER |= TIM_CCER_CC2P;
}
TIM_ClearITPendingBit(TIM1, TIM_IT_CC2);
}
Vielen Dank im Vorraus.