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つのファイルを作成しますが、別のファイルのタスクで使用できますか?