I have the following code which reads characters from a queue and puts them on the LCD:
lcdInit(); /*initialize LCD*/
if ((qLCD != 0) && (xQueueReceive(qLCD, &ch, portMAX_DELAY) == pdPASS))
and the following code to feed up a queue(from another task):
unsigned portSHORT lcdPutS(unsigned portCHAR* str)
while ((str) && (*str) && (qLCD != 0) && (xQueueSend(qLCD, str++, portMAX_DELAY) == pdTRUE)) ;
But my system seems to be blocked somewhere. I expect it to print on the LCD as I feed the queue with data.
Aren’t the tasks supposed to YIELD if queue empty on receive or queue full on send? This way, whichever event comes first, will allow the other task to do its job(send on queue empty or receive on queue full).