ISIX-RTOS – przykłady w języku C: LCD+joystick+LED
Opis systemu ISIX-RTOS i jego funkcji opublikowaliśmy w artykule „Mini system operacyjny dla STM32 – wprowadzenie”, który można przeczytać tu. |
Pierwsza seria artykułów zawierająca wprowadzenie do systemu ISIX z przykładami w języku C++ cieszyła się zainteresowaniem wśród użytkowników mikrokontrolerów STM32. Napływające pytania skłoniły mnie do napisania drugiej wersji przykładów – tym razem napisanych w języku C. W przykładzie opisanym poniżej pokażemy, jak tworzyć wątki w języku C z wykorzystaniem systemu ISIX oraz w jaki sposób skomunikować je ze sobą. Przedstawimy również możliwość wykorzystania wątków do realizacji trzech niezależnych zadań. W naszym przykładzie jeden wątek odpowiada za miganie diodą D1 w zestawie STM32Butterfly, drugi wątek odpowiada za sprawdzanie stanu joysticka Joy1 i w przypadku zwarcia którychś z jego styków, będzie wysyłał kod za pomocą kolejki komunikatów do trzeciego wątku, który odbiera komunikaty o naciśnięciach klawiszy i wyświetla odpowiednie informacje na graficznym wyświetlaczu LCD.
Do uruchomienia przykładu potrzebować będziemy dodatkowego modułu KAmodLCD1 (z wyświetlaczem z telefonu Nokia 3310), który należy podłączyć do zestawu STM32Butterfly według schematu pokazanego na rys. 1 (można do tego celu wykorzystać przewody CAB_A).
Rys. 1. Schemat połączeń elektrycznych pomiędzy modułem KAmodLCD1 i STM32Butterfly
Działanie przykładowej aplikacji z uwzględnieniem podziału na wątki przedstawiono na rys. 2.
Rys. 2. Działanie przykładowej aplikacji z uwzględnieniem podziału na wątki