Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

FreeRTOS app_timer.h bug?

I'm using FreeRTOS and trying to get push button events to fire. The events would fire if I held the button down long enough. I found out that the problem was that "FREERTOS" wasn't defined anywhere so the APP_TIMER_TICKS macro wasn't calculating the right value.


/**@brief Convert milliseconds to timer ticks.
 *
 * This macro uses 64-bit integer arithmetic, but as long as the macro parameters are
 *       constants (i.e. defines), the computation will be done by the preprocessor.
 *
 * @param[in]  MS          Milliseconds.
 *
 * @return     Number of timer ticks.
 */
#ifndef FREERTOS
#define APP_TIMER_TICKS(MS)                                \
            ((uint32_t)ROUNDED_DIV(                        \
            (MS) * (uint64_t)APP_TIMER_CLOCK_FREQ,         \
            1000 * (APP_TIMER_CONFIG_RTC_FREQUENCY + 1)))
#else
#include "FreeRTOSConfig.h"
#define APP_TIMER_TICKS(MS) (uint32_t)ROUNDED_DIV((MS)*configTICK_RATE_HZ,1000)
#endif

Parents
  • Hello,

     

    Are you using one of our FreeRTOS examples, or did you start from scratch with one of the template projects?

     

    If you look in our FreeRTOS examples in the SDK, "FREERTOS" is defined in the preprocessor defines, in the project settings.

    Try to define "FREERTOS" there, and see if it behaves more like you would expect after that.

     

    Best regards,

    Edvin

Reply
  • Hello,

     

    Are you using one of our FreeRTOS examples, or did you start from scratch with one of the template projects?

     

    If you look in our FreeRTOS examples in the SDK, "FREERTOS" is defined in the preprocessor defines, in the project settings.

    Try to define "FREERTOS" there, and see if it behaves more like you would expect after that.

     

    Best regards,

    Edvin

Children
Related