FreeRTOS Task-Queue mit statischem Speicher (xQueueCreateStatic) minimales Beispiel

Siehe auch unseren vorherigen Post FreeRTOS Task-Queue minimales Beispiel, der auch Beispiele zum Senden & Empfangen mit einer Queue enthält. Der Post, den du gerade ansiehst, handelt nur von xQueueCreateStatic()

freertos_xqueue_static_example.cpp
enum class MQTTTaskType : uint8_t {
    SendStatus = 0,
    SendInfo
};

// Dieses Struct wird in die Queue eingefügt
struct MQTTTask {
    MQTTTaskType task; // The type of work that is requested from the received
    // TODO add your custom fields here if requred
};

constexpr size_t MQTT_TASK_QUEUE_LENGTH = 6;
static QueueHandle_t mqttTaskQueue;
static StaticQueue_t mqttTaskQueueStatic;
static uint8_t mqttTaskQueueStorageArea[ MQTT_TASK_QUEUE_LENGTH * sizeof(MQTTTask) ];

void setup() {
    // Task-Queue erstellen
    mqttTaskQueue = xQueueCreateStatic( MQTT_TASK_QUEUE_LENGTH,
                                 sizeof(MQTTTask),
                                 mqttTaskQueueStorageArea,
                                 &mqttTaskQueueStatic );
}
freertos_xqueue_static_example.cpp
enum class MQTTTaskType : uint8_t {
    SendStatus = 0,
    SendInfo
};

// Dieses Struct wird in die Queue eingefügt
struct MQTTTask {
    MQTTTaskType task; // The type of work that is requested from the received
    // TODO add your custom fields here if requred
};

constexpr size_t MQTT_TASK_QUEUE_LENGTH = 6;
static QueueHandle_t mqttTaskQueue;
static StaticQueue_t mqttTaskQueueStatic;
static uint8_t mqttTaskQueueStorageArea[ MQTT_TASK_QUEUE_LENGTH * sizeof(MQTTTask) ];

void setup() {
    // Task-Queue erstellen
    mqttTaskQueue = xQueueCreateStatic( MQTT_TASK_QUEUE_LENGTH,
                                 sizeof(MQTTTask),
                                 mqttTaskQueueStorageArea,
                                 &mqttTaskQueueStatic );
}

Ähnliche Beiträge nach Kategorie: C/C++ Embedded FreeRTOS PlatformIO