ISIX-RTOS – przykłady w języku C: LCD+joystick+LED
Cykliczne miganie diodą LED dołączoną na płytce STM32Butterfly do linii PE14 mikrokontrolera odbywa się w wątku pokazanym na list. 1.
List. 1. Wątek odpowiadający za miganie LED dołączonej do linii PE14 mikrokontrolera STM32F107
/** Blinking led task
function */
static ISIX_TASK_FUNC(blinking_task, entry_param)
{
RCC->APB2ENR |= RCC_APB2Periph_GPIOE;
io_config(LED_PORT, LED_PIN, GPIO_MODE_10MHZ, GPIO_CNF_GPIO_PP);
for(;;)
{
//Enable LED
io_clr( LED_PORT, LED_PIN );
//Wait time
isix_wait_ms( BLINK_TIME );
//Disable LED
io_set( LED_PORT, LED_PIN );
//Wait time
isix_wait_ms( BLINK_TIME );
}
}
Funkcję implementującą wątek w systemie ISIX deklarujemy za pomocą makra ISIX_TASK_FUNC, które jako argumenty przyjmuje nazwę funkcji oraz nazwę parametru funkcji. Każda funkcja implementująca zadanie w systemie ISIX posiada parametr typu void*, poprzez który możemy przekazać dane podczas jego tworzenia. W wątku najpierw jest konfigurowany port mikrokontrolera PE14, do którego podłączono diodę D1, aby pełnił rolę linii wyjściowej. Następnie program wchodzi do niekończącej się pętli, w której cyklicznie zmieniany jest stan diody LED. Opóźnienie (tak aby było widoczne miganie diody) jest realizowane za pomocą funkcji isix_wait_ms(), która powoduje wywłaszczenie (uśpienie) wątku na zadaną liczbę milisekund. Pokrewną funkcją jest isix_wait(), która usypia wykonywanie wątku na zadaną liczbę cykli systemu operacyjnego (ticks). W systemie ISIX, funkcje implementujące wątek muszą zawierać pętlę nieskończoną a zakończenie wykonywania wątku możliwe jest tylko za pomocą wywołania isix_task_delete(NULL). Tworzenie wątków systemowych odbywa się w funkcji main() (list. 2).
List. 2. Funkcja tworząca wątki systemowe
//App main entry point
int main(void)
{
//Create ISIX blinking task
isix_task_create( blinking_task, NULL,ISIX_PORT_SCHED_MIN_STACK_DEPTH, BLINKING_TASK_PRIO);
fifo_t *kbd_fifo = isix_fifo_create( 10, sizeof(key_t) );
if(kbd_fifo)
{
//Create the display serwer task
isix_task_create(display_srv_task, kbd_fifo, DISPLAY_TASK_STACK_SIZE, DISPLAY_TASK_PRIO);
//Create the keyboyard task
isix_task_create(keyboard_srv_task, kbd_fifo, KBD_TASK_STACK_SIZE, KBD_TASK_PRIO);
}
//Start the isix scheduler
isix_start_scheduler();
}



Hybrydowe architektury kosmiczne – projektowane z myślą o wydajności i pewności działania
Inżynierowie jutra nie projektują od zera. Jak narzędzia cyfrowe zmieniają pracę nad nowymi technologiami?
Automatyzacja magazynów w Polsce – Exotec i Skypod 


![https://www.youtube.com/watch?v=xeqdqGuy-Aw Michał Mitas, kierownik laboratorium Badań Urządzeń Radiowych w katowickim instytucie Łukasiewicz - AI, opowiada o badaniach urządzeń z interfejsem komunikacji bezprzewodowej, jak Wi-Fi, Bluetooth, LTE czy 5G, przeprowadzanych w komorze bezodbiciowej. Zapraszamy do obejrzenia filmu! [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/10/00.png)

![https://www.youtube.com/watch?v=QSnLO-KmBMY O wybranych projektach realizowanych w Laboratorium Zakładu Układów Mikrofalowych – ISE PW opowiadają: mgr inż. Michał Kalisiak, dr hab. inż. Arkadiusz Lewandowski, mgr inż. Andžej Šerlat oraz dr hab. inż. Krzysztof Czuba. Zapraszamy na firm [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/09/WEiTI-PW-czolowka.png)

