STM32F3 input capture to measure HSE/32

OP #4100841
Lesenswert?

Hallo,

Ich probiere mit Timer16 auf einem STM32F334 die Frequenz meines HSE 
Taktes zu messen. Der Controller läuft dabei über den HSI Takt. HSE ist 
aktiviert und auf RCC_HSE_BYPASS.

Die Initialisierung sieht so aus (mit MXCube erzeugt + händische 
Änderungen):
1
  TIM_HandleTypeDef htim16;
2

3
  TIM_IC_InitTypeDef sConfigIC;
4

5
  htim16.Instance = TIM16;
6
  htim16.Init.Prescaler = 0;
7
  htim16.Init.CounterMode = TIM_COUNTERMODE_UP;
8
  htim16.Init.Period = 0xFFFF;
9
  htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
10
  htim16.Init.RepetitionCounter = 0;
11
  HAL_TIM_Base_Init(&htim16);
12

13
  HAL_TIM_IC_Init(&htim16);
14

15
  sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
16
  sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
17
  sConfigIC.ICPrescaler = TIM_ICPSC_DIV8;
18
  sConfigIC.ICFilter = 1;
19
  HAL_TIM_IC_ConfigChannel(&htim16, &sConfigIC, TIM_CHANNEL_1);
20

21
  HAL_TIMEx_RemapConfig(&htim16, TIM_TIM16_HSE);
22

23
  __TIM16_CLK_ENABLE();
24

25
  HAL_TIM_IC_Start(&htim16,TIM_TIM16_HSE);

Danach probiere ich den Wert des Input Capture Registers wie folgt 
auszulesen:
1
    uint32_t ic = TIM16->CCR1;
2
    printf ("IC Value: %u\n\r", ic);

Bekomme allerdings die ganze Zeit 0 angezeigt.

Was habe ich übersehen bzw. vergessen zu initialisieren?

Danke,
Stefan

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