Problemas de FreeRtos en tareas de ADC y tareas de transmisión

1

Tengo una tarea ADC que usa 4 canales y usa el DMA para la transferencia. También tengo un cliente de transmisión que transmite los datos de ADC a través del socket TCP. Hice que la tarea ADS tenga una prioridad más baja que el cliente de transmisión.

Estoy enviando un número entero que selecciona qué canal ADC se selecciona como una cola de mensajes para el cliente de transmisión.

El problema es que obtengo un desbordamiento de cola al enviar ese entero de canal adc.

TAREA ADC

  if(bufferSelect != BUFFERS_NOT_READY)
        {
            if(xQueueSend(g_adcQueue, &bufferSelect,  0) != pdPASS)
            {
                throwError(ERROR_MESSAGE_QUEUE_FULL);
                PRINTF("%s\r\n", getErrorMessage(ERROR_MESSAGE_QUEUE_FULL));
            }
            bufferSelect = BUFFERS_NOT_READY;
        }

Tarea del cliente de transmisión

/* obtain next buffer ready event */
        if(xQueueReceive(g_adcQueue, &bufferSelect, 0) == pdFALSE)
        {
            g_stopStreaming = true;
            continue;
        }
    
pregunta Ahmed Saleh

0 respuestas

Lea otras preguntas en las etiquetas