programowanie:rtos:start

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronach Poprzednia wersja
Nowa wersja
Poprzednia wersja
programowanie:rtos:start [2024/08/29 09:06] sasesprogramowanie: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));  // pauza przed następną iteracją w milisekundach 
 +  } 
 +
 +</code> 
 +\\ 
 + 
 +Zadanie tworzy się w 
 +<code c> 
 +void setup() 
 +
 +  xTaskCreate(...); 
 +
 +</code> 
 +\\ 
 + 
 +=== Pojedyncze zadanie === 
 + 
 +<code c> 
 +xTaskCreate( 
 +  nazwa_funkcji,    // Function that should be called 
 +  "nazwa_zadania",  // Name of the task (for debugging) 
 +  3000,             // Stack size (bytes) 
 +  NULL,             // Parameter to pass 
 +  tskIDLE_PRIORITY, // Task priority 
 +  NULL              // Task handle 
 +); 
 +</code> 
 +\\ 
 + 
 + 
 +=== Tworzenie wielokrotnie zadania używającego tej samej funkcji === 
 + 
 +<code c> 
 +for(int i = 0; i < ilosc_powtorzen; i++) 
 +
 +  TaskParams* params = new TaskParams; 
 +  params->param = i; 
 +  String s = "Task_" + String(i); 
 +  char* taskName = strdup(s.c_str()); 
 + 
 +  xTaskCreate( 
 +    nazwa_funkcji,     // Function that should be called 
 +    taskName,          // Name of the task (for debugging) 
 +    3000,              // Stack size (bytes) 
 +    params,            // Parameter to pass 
 +    2,                 // Task priority 
 +    NULL               // Task handle 
 +  ); 
 +
 +</code> 
 +\\ 
 +**//Task priority//** oznacza priorytet dla tego zadania. Im wyższa liczba tym większy priorytet (''tskIDLE_PRIORITY'' - najniższy priorytet).\\ 
 +**//Task handle//** służy do odwoływania się do tego zadania z innych części kodu. Pozwala np. wstrzymać i wznowić wykonywanie zadania. 
  
  • programowanie/rtos/start.1724915189.txt.gz
  • ostatnio zmienione: 2024/08/29 09:06
  • przez sases