Gomulu Sistemler 1 dakika okuma

ESP32 ile FreeRTOS: Cok Gorevli Sistem Tasarimi

ESP32 ve FreeRTOS ile cok gorevli gomulu sistem: gorev olusturma, kuyruk ve mutex.

E
Emre Cihan
· · 56 görüntüleme

FreeRTOS Neden ESP32 Icin Ideal

ESP32 cift cekirdekli mimarisi ve entegre FreeRTOS destegi ile guclu gomulu sistemler icin idealdir.

Gorev Olusturma

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"

QueueHandle_t kuyruk;

void sensor_fn(void *p) {
    float d;
    while (1) {
        d = sicaklik_oku();
        xQueueSend(kuyruk, &d, pdMS_TO_TICKS(100));
        vTaskDelay(pdMS_TO_TICKS(2000));
    }
}

void wifi_fn(void *p) {
    float d;
    while (1) {
        if (xQueueReceive(kuyruk, &d, pdMS_TO_TICKS(5000)))
            mqtt_gonder("sensor/t", d);
    }
}

void app_main(void) {
    kuyruk = xQueueCreate(10, sizeof(float));
    xTaskCreatePinnedToCore(sensor_fn, "S", 4096, NULL, 5, NULL, 0);
    xTaskCreatePinnedToCore(wifi_fn,   "W", 8192, NULL, 3, NULL, 1);
}

Mutex

SemaphoreHandle_t mtx;

void gorev(void *p) {
    while (1) {
        if (xSemaphoreTake(mtx, pdMS_TO_TICKS(100))) {
            spi_yaz(veri);
            xSemaphoreGive(mtx);
        }
    }
}

Watchdog

#include "esp_task_wdt.h"
void kritik(void *p) {
    esp_task_wdt_add(NULL);
    while (1) { islem(); esp_task_wdt_reset(); vTaskDelay(pdMS_TO_TICKS(1000)); }
}
Etiketler: #ESP32 #FreeRTOS
Paylaş: Twitter / X
E
Emre Cihan
Sistem Yöneticisi · Maker · Elektronik Meraklısı

İlgili yazılar

Embedded Systems
FreeRTOS vs Zephyr RTOS: 2025 Karşılaştırması
11 dk
#ESP32
Elektronik
ESP32-S3 ile USB HID Cihaz Tasarımı: Özel Klavye Firmware
14 dk
#ESP32
Gomulu Sistemler
Zephyr RTOS ile Modern Gomulu Sistem
1 dk
#FreeRTOS