FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [October 2005 Threads] Pushing events to xQueueReceive from ISRPosted 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 ISRPosted 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 ISRPosted by Nobody/Anonymous on October 27, 2005 OK, thank you for explanation! Paul
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|