Różnice
Różnice między wybraną wersją a wersją aktualną.
| Poprzednia rewizja po obu stronach Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
| programowanie:rtos:start [2024/08/29 09:06] – sases | programowanie:rtos:start [2024/10/08 06:44] (aktualna) – sases | ||
|---|---|---|---|
| Linia 4: | Linia 4: | ||
| \\ | \\ | ||
| - | Przykłady użycia na chipach **ESP32**. Używanie RTOS na ESP8266 jest mocno urudnione. | + | Przykłady użycia na chipach **ESP32**. Używanie RTOS na ESP8266 jest mocno utrudnione.\\ |
| + | \\ | ||
| + | \\ | ||
| + | |||
| + | ===== Zadania ===== | ||
| + | |||
| + | Funkcja uruchamiana jako zadanie musi być nieskończoną pętlą: | ||
| + | <code c> | ||
| + | void nazwa_funkcji(void* parameters) | ||
| + | { | ||
| + | while (true) | ||
| + | { | ||
| + | ... | ||
| + | vTaskDelay(pdMS_TO_TICKS(1000)); | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | \\ | ||
| + | |||
| + | Zadanie tworzy się w | ||
| + | <code c> | ||
| + | void setup() | ||
| + | { | ||
| + | xTaskCreate(...); | ||
| + | } | ||
| + | </ | ||
| + | \\ | ||
| + | |||
| + | === Pojedyncze zadanie === | ||
| + | |||
| + | <code c> | ||
| + | xTaskCreate( | ||
| + | nazwa_funkcji, | ||
| + | " | ||
| + | 3000, // Stack size (bytes) | ||
| + | NULL, // Parameter to pass | ||
| + | tskIDLE_PRIORITY, | ||
| + | NULL // Task handle | ||
| + | ); | ||
| + | </ | ||
| + | \\ | ||
| + | |||
| + | |||
| + | === Tworzenie wielokrotnie zadania używającego tej samej funkcji === | ||
| + | |||
| + | <code c> | ||
| + | for(int i = 0; i < ilosc_powtorzen; | ||
| + | { | ||
| + | TaskParams* params = new TaskParams; | ||
| + | params-> | ||
| + | String s = " | ||
| + | char* taskName = strdup(s.c_str()); | ||
| + | |||
| + | xTaskCreate( | ||
| + | nazwa_funkcji, | ||
| + | taskName, | ||
| + | 3000, // Stack size (bytes) | ||
| + | params, | ||
| + | 2, // Task priority | ||
| + | NULL // Task handle | ||
| + | ); | ||
| + | } | ||
| + | </ | ||
| + | \\ | ||
| + | **//Task priority// | ||
| + | **//Task handle//** służy do odwoływania się do tego zadania z innych części kodu. Pozwala np. wstrzymać i wznowić wykonywanie zadania. | ||