Skip to main content
Explorer
December 12, 2022
Solved

bug in HAL_GetTickFreq

  • December 12, 2022
  • 5 replies
  • 2128 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.

    5 replies

    Pavel A.Answer
    Super User
    December 13, 2022

    It should be tick period in ms.

    Visitor II
    December 13, 2022

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

    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

    MScha.8Author
    Explorer
    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.

    Super User
    January 8, 2023

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

    Graduate II
    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!