Skip to main content
MScha.8
Associate II
Dec 12, 2022 10:21 PM UTC
Solved

bug in HAL_GetTickFreq

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.
Pavel A.
Pavel A.Best answer
Dec 13, 2022 12:09 AM UTC

It should be tick period in ms.

6 replies

Pavel A.
Pavel A.Best answer
Dec 13, 2022 12:09 AM UTC

It should be tick period in ms.

S.Ma
Principal
Dec 13, 2022 3:36 AM UTC

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

KDJEM.1
ST Technical Moderator
Dec 14, 2022 1:32 PM UTC

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
Jan 8, 2023 4:43 PM UTC

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.
Jan 8, 2023 7:57 PM UTC

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

Piranha
Principal III
Jan 8, 2023 10:23 PM UTC
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!