cancel
Showing results for 
Search instead for 
Did you mean: 

bug in HAL_GetTickFreq

MScha.8
Associate II

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;

1 ACCEPTED SOLUTION

Accepted Solutions
Pavel A.
Evangelist III

It should be tick period in ms.

View solution in original post

6 REPLIES 6
Pavel A.
Evangelist III

It should be tick period in ms.

S.Ma
Principal

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

KDJEM.1
ST Employee

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 Accept as Solution on the reply which solved your issue or answered your question.

MScha.8
Associate II

Thank you Kaouthar.

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

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

Piranha
Chief II
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!