Quality RTOS & Embedded Software

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




Loading

Pushing events to xQueueReceive from ISR

Posted by Nobody/Anonymous on October 27, 2005
Hi all,

I am starting a project with FreeRTOS. The RTOS is a big help for me. Thanx to Richard.

In my design, I am using the 'Active Object Design'. Here I need to fire events to a task from two sources:
1. ISR routine
2. normal task

In the event receiver task I would like to use only one point where I read the incomming events.

Can I use the xQueueReceive() for this both
sources?

Or do I need to have both xQueueReceive() and
xQueueReceiveFromISR() in the receive task???

Regards
Paul

RE: Pushing events to xQueueReceive from ISR

Posted by Nobody/Anonymous on October 27, 2005
xQueueReceiveFromISR() is for receiving queued characters actually within an ISR, not for receiving queued characters that were sent from and ISR. ie xQueueReceiveFromISR() function is not needed other than for writing ISR routines.

xQueueReceiveFromISR() might be used with a comms interrupt for example. If you receive an interrupt to tell you a character had been transmitted the you might use xQueueReceiveFromISR() to see if any other characters were queued for transmission. Because this is done from within an ISR xQueueReceive() cannot be used as it could cause a context switch at an unwanted time.

In your case you can use xQueueSendFromISR() and xQueueSend() to post to the same queue from within and outside of an ISR function respectively. Then use a single xQueueReceive() call in your task to read the queue and receive the events from both sources.

RE: Pushing events to xQueueReceive from ISR

Posted by Nobody/Anonymous on October 27, 2005
OK, thank you for explanation!
Paul


[ 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