STM32 Input Capture

OP #2925848
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren