FreeRTOS Mutex-Minimalbeispiel

English Deutsch

So erstellen und verwenden Sie einen Mutex in FreeRTOS:

Includes:

freertos_includes.h
#include <freertos/semphr.h>

Globale Deklaration

freertos_globals.cpp
SemaphoreHandle_t myMutex;

Initialisierungscode

Rufen Sie dies einmal auf, bevor Sie es verwenden:

freertos_init.cpp
myMutex = xSemaphoreCreateMutex();

Mutex sperren & entsperren

freertos_mutex_usage.cpp
// Maximal 10ms auf das Sperren des Mutex warten
if(xSemaphoreTake(myMutex, 10 / portTICK_PERIOD_MS) == pdTRUE) {
    // Mutex erfolgreich gesperrt
    // TODO: Ihr Code kommt hier rein!
    // Mutex entsperren!
    xSemaphoreGive(myMutex);
} else {
    // Mutex konnte nicht innerhalb des Timeouts gesperrt werden
    // NICHT die durch den Mutex geschützte Ressource verwenden
    // NICHT entsperren (xSemaphoreGive)!
}

Check out similar posts by category: Embedded, FreeRTOS, PlatformIO