davedoors wrote on Monday, May 21, 2007:
1)
Don’t know what you are asking, but there is no need to place the xQueueReceive() in a while loop if you are using a newer version of FreeRTOS.
2)
Queue implementations in ISRs are not always a good idea. It is best to use the DMA of FIFO of the peripheral to capture data, then a semaphore to wake a task to process the data. This is much more efficient.
3)
No - but there is a separate vTaskResumeFromISR() function that can be used. Generally waking tasks from interrupts is best done using a semaphore as you will not get into a situation where the task suspends as the ISR is calling Resume.