Forum: Mikrocontroller und Digitale Elektronik Stm32 input capture mode


von Martin (Gast)


Lesenswert?

Hallo,

ich brauche eure Hilfe, um die Zeit zwischen 2 steigende Flanken zu 
messen. Mein Ansatz war leider bisher nicht erfolgreich. Ich habe 
versucht eine PWM-Signal zu generieren und ihre Periode zu messen. Das 
PWM Signal habe schon mit Oszi
gesehen. Zur Cubemx Einstellung:
-TIM3>> Prescaler=14, Period=1066, Timerfreq=16 MHZ. also 1000µs period
-TIM5 >> CH1 >> Prescaler=0, period=65535,Timerfreq=16 MHZ, CH1>> input 
capture direct mode, Rising edge und natürlich enable TIM5 global 
Interrupt.

so wollte nur sehen, ob das Interrupt ausgelöst wird, wenn ich an 
CH1_TIM5 3.3 V anlege. Aber irgendwie blinkt die LED am Board nicht. 
kann Jemand mich unterstützen?


  /* USER CODE BEGIN 2 */

HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);
HAL_TIM_Base_Start_IT(&htim5);
  /* USER CODE END 2 */


/* USER CODE BEGIN 4 */
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
  /* Prevent unused argument(s) compilation warning */
  UNUSED(htim);


if(htim->Instance==TIM5){
  Puls=  HAL_TIM_ReadCapturedValue(&htim5,TIM_CHANNEL_1);
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_SET);
  }
}

von Kreuzwort Rätsel (Gast)


Lesenswert?

Aus deinen Code-Fragmenten kann man nicht viel erkennen.
Ich werde mir auch nicht die Mühe machen durch viel Logik
den Fehler zu suchen oder die Fehlerfreiheit zu bestätigen.

Nur soviel: irgendo muss es ja eine Verbindung von einem Pin
zu einem Timer geben, das vermisse ich. Müsste ja ein Pin
inklusive Takt aktiviert werden ...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.