Skip to main content
MScha.8
Associate II
December 12, 2022
Solved

bug in HAL_GetTickFreq

  • December 12, 2022
  • 6 replies
  • 2155 views

The description for HAL_GetTickFreq says

/**

 * @brief Return tick frequency.

 * @retval tick period in Hz

 */

It returns 1 when the tick frequency is 1kHz. The period would be .001 seconds and the frequency would be 1000 Hz. Based on the typedef below, I'm not even sure what the units really are, but the description is clearly wrong.

typedef enum

{

 HAL_TICK_FREQ_10HZ     = 100U,

 HAL_TICK_FREQ_100HZ    = 10U,

 HAL_TICK_FREQ_1KHZ     = 1U,

 HAL_TICK_FREQ_DEFAULT   = HAL_TICK_FREQ_1KHZ

} HAL_TickFreqTypeDef;

This topic has been closed for replies.
Best answer by Pavel A.

It should be tick period in ms.

6 replies

Pavel A.
Pavel A.Best answer
December 13, 2022

It should be tick period in ms.

S.Ma
Principal
December 13, 2022

Alas, the coder missed the intuitive and flexible way of coding a frequency.

KDJEM.1
ST Technical Moderator
December 14, 2022

Hello @MScha.8​,

I confirm the issue and I reported internally.

Internal ticket number: 141253(This is an internal tracking number and is not accessible or usable by customers).

Thank you.

Kaouthar

To give better visibility on the answered topics, please click on "Best answer" on the reply which solved your issue or answered your question.
MScha.8
MScha.8Author
Associate II
January 8, 2023

Thank you Kaouthar.

It appears that both the enum and the function should be named something like TickPeriodInMilliseconds as suggested by Pavel A.

Pavel A.
January 8, 2023

Maybe HAL_TICK_FREQ_nnnHZ can be memorized as HAL tick [period in ms] at frequency nnn HZ

Piranha
Principal III
January 8, 2023
period in Hz

This one is a pure gold! Actually shows the level of understanding of the developers...

Also I wonder whether the designers stopped for a minute and looked around. There are reasons why every other system from small schedulers to large desktop OS counts ticks, not milliseconds!