Forum: Mikrocontroller und Digitale Elektronik STM32F3 input capture to measure HSE/32


von T. F. (sar)


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

von abc (Gast)


Lesenswert?

Müssen bei diesen Cortex-Dingern nicht auch die GPIOs initialisiert und 
mit Takt versorgt werden?

Schau noch mal ins Handbuch, oder schau mal hier

http://www.diller-technologies.de/stm32.html

oder schau mal auf

http://www.mikrocontroller.net

;)

ade sagt abc

von T. F. (sar)


Lesenswert?

habe das Problem gefunden:
1
HAL_TIM_IC_Start(&htim16,TIM_TIM16_HSE);
sollte
1
HAL_TIM_IC_Start(&htim16,TIM_CHANNEL_1);
lauten.

War wohl zu spät gestern...

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.