Quality RTOS & Embedded Software

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




Loading

Resume task from interrupt and end vTaskDelay

Posted by mayank15 on September 8, 2014

I am running FreeRTOS on STM32-Eval board. I create a task and call vTaskDelay(x) at the end to have the task block for x number of ticks and have the board enter sleep state.

Is there a way to resume the task when an interrupt triggers or it just has to wait until the block time has expired?

I cannot call vTaskSuspend because i do want the task to run on its own after x number of ticks as well. I want the interrupt as a way to wake the device earlier and resume normal operation.

Thanks


Resume task from interrupt and end vTaskDelay

Posted by davedoors on September 8, 2014

Create a semaphore then replace the call to vTaskDelay() with a call to xSemaphoreTake() with the same block time. The interrupt can unblock the task by giving the semaphore, and the task will know if it was unblocked by an interrupt or by the delay expiring by testing the return value of xSemaphoreTake(). Here is an example (at the bottom) http://www.freertos.org/a00124.html


Resume task from interrupt and end vTaskDelay

Posted by mayank15 on September 8, 2014

Great i will take a look Thanks


[ 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