Operowanie bezpośrednio na rejestrach 32–bitowego procesora lub mikrokontrolera nie należy do zadań prostych. Mimo, iż samo napisanie (stosunkowo zaawansowanych) aplikacji przy użyciu nazw rejestrów jest możliwe, to wprowadzanie zmian do istniejącego kodu po upływie na przykład kilku miesięcy, dodatkowo przez osobę, która nie jest autorem programu, jest w zasadzie niemożliwe do wykonania w sensownym czasie. Z tego powodu do takich operacji programiści wykorzystują funkcje o mniej lub bardziej kojarzących się nazwach. Jeżeli mamy do czynienia z bardzo skomplikowanym projektem wykorzystującym wiele peryferiów mikrokontrolera, to napisanie stosownych funkcji jest pracochłonne i wymaga dobrej znajomości architektury mikrokontrolera.
Obsługa programowanego detektora napięcia PVD
PVD (Programmable Voltage Detector) jest wewnętrznym blokiem sprzętowym w mikrokontrloerach STM32 mającym za zadanie monitorowanie wartości napięcia zasilania. Progi, po których przekroczeniu generowane będzie przerwanie, mogą być programowane przez użytkownika w szerokich granicach.
Mini system operacyjny dla STM32 – wprowadzenie
Współczesne oprogramowanie dla mikrokontrolerów staje się coraz bardziej skomplikowane. Użytkownicy systemów coraz częściej oczekują graficznego interfejsu użytkownika, obsługi sieci itp. Wiele czynności w rozbudowanych aplikacjach musi być wykonywane „jednocześnie”.
ISIX-RTOS – przykład 1 – sterowanie LED w wątkach
Pokażemy w jaki sposób stworzyć kod startowy dla systemu oraz dwa nowe zadania (wątki).
Motylowy termometr
Jest to prosty projekt ilustrujący pomiar temperatury za pomocą czujnika wbudowanego w strukturę mikrokontrolera STM32F107 (zamontowanego na płytce STM32Butterfly) i wyświetlenie jej dziesiętnej wartości na graficznym wyświetlaczu LCD z telefonu Nokia 3310.
ISIX-RTOS – przykład 2 – kolejki FIFO i obsługa graficznego wyświetlacza LCD
W przykładzie pokażemy komunikację pomiędzy procesami z wykorzystaniem wątków. Działanie aplikacji będzie sprowadzać się do migania diody LED D1 z częstotliwością 2 Hz (jeden wątek) oraz wyświetleniu napisu lub grafik odpowiadających kierunkom joysticka zamontowanego na płytce.
Generatory PWM – obsługa programowa
Często mikrokontrolery sterują układami peryferyjnymi za pomocą sygnału zegarowego lub sygnałów PWM. W przykładzie pokażemy działanie i praktyczne wykorzystanie licznika TIM1 oraz możliwość jego współpracy z innymi blokami mikrokontrolera.
Mikrokontroler STM32 jako konwerter USB na 2xRS232
Mikrokontrolery STM32 z wbudowanym interfejsem USB device doskonale nadają się do implementacji w nich konwerterów USB/RS232 (zarówno dla Windows jak i Linuksa) – przykład takiego rozwiązania przedstawiamy w artykule.
ISIX-RTOS – przykład 3 – obsługa przerwań na przykładzie zegara RTC z magistralą I2C
Wątki mogą komunikować się ze sobą za pomocą semaforów lub kolejek komunikatów. Korzystanie z nich może powodować usypianie procesu (sleep state) w wyniku oczekiwania na pozyskanie zasobu. W przypadku przerwań uśpienie procedury obsługi przerwania nie jest możliwe…
Biblioteki CMSIS dla STM32 ver. 3.1.0
Do mikrokontrolerów STM32 producent dostarcza kompletne biblioteki zgodne z zaleceniami CMSIS (Cortex Microcontroller Software Interface Standard).