4

FreeRTOS のタスクに複数のキューを送信できません。

私は次のようにそれらを保持する構造体を作成しようとしました:

typedef struct
{
    xQueueHandle buttonQueue;
    xQueueHandle OLEDQueue;
} xQueues;

そして、次のようにタスクに送信します。

void vStartADCtasks( xQueueHandle xButtonQueuex, QueueHandle xOLEDQueue )
{
    xQueues xADCQueues = { xOLEDQueue, xButtonQueue };
    xTaskCreate( vGetAltitude, "Get Altitude", 240, (void *) &xADCQueues, 2, NULL );
}

タスクで次のようにアクセスします。

static void vGetAltitude(void *pvParameters) {
    xQueues *xADCQueues = ( xQueues * ) pvParameters;
    xQueueHandle xOLEDQueue = xADCQueues->OLEDQueue;
    xQueueHandle xButtonQueue = xADCQueues->buttonQueue;

しかし、それはうまくいきません。任意のヒント?私のより一般的な質問は、複数の .c ファイル間でキューを渡す方法だと思います。すなわち。それと1つのファイルを作成しますが、別のファイルのタスクで使用できますか?

4

1 に答える 1