Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem TCP & FAT




Loading

Checking xTimerIsTimerActive after xTimerStart

Posted by ptaylor-us on November 5, 2015

I think I already know the answer to this, but need to verify. I think since calling xTimerStart returns after adding a command to the timer command queue, I can't immediately call xTimerIsTimerActive and expect a pdTRUE return. I am trying to use a Timer for a timeout while waiting for an ACK on a serial interface. I would like to not have to implement a callback function which simply sets a global "timeout" flag. Anyone come up with a smoother way of doing this?


Checking xTimerIsTimerActive after xTimerStart

Posted by rtel on November 6, 2015

Just looking at the implementation of xTimerIsTimerActive(), I think you are right. The function checks to see if the timer is in the active timer list, so if the start command is in the timer command queue, then it will not be in the active list (yet, unless it was already running), and xTimerIsTimerActive() will return false.

If the priority of the timer task is higher than the priority of the task starting the timer, then you will not get this problem as, as soon as the command goes into the command queue, the timer task will leave the Blocked state, pre-empt the task that posted the command, and process the command, before the function that started the timer even returns.

Regards.


[ Back to the top ]    [ About FreeRTOS ]    [ Sitemap ]    [ ]




Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

FreeRTOS kernel V10 is available for immediate download. Now MIT licensed.


FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS