Kurs FreeRTOS #6: obsługa przerwań

freertos przerwania

Programując systemy wbudowane bardzo często musimy reagować na jakieś zdarzenia – pojawienie się zbocza, zakończenie pomiaru czy nadejście danych. Można w tym celu zastosować pooling i ciągle sprawdzać występujące stany, ale tego staramy się unikać. Alternatywą jest wykorzystanie przerwań, co w embedded jest codziennością. Czas pokazać jak wygląda ich obsługa w systemie FreeRTOS 🙂 Przy okazji opiszę semafory zliczające i rozwinę temat semaforów binarnych – tym razem wykorzystamy je do synchronizacji zadań z przerwaniami.… Czytaj dalej

Kurs FreeRTOS #5: semafory

freertos semafory

Dzisiaj zajmiemy się czymś zupełnie nowym – semaforami! 🙂 Możliwe, że już kiedyś obiło Ci się o uszy takie pojęcie. Jeśli tak to nic dziwnego. Semafory nie są narzędziem dostępnym tylko we FreeRTOSie. Znajdziesz je w każdym wielozadaniowym systemie operacyjnym. Potwierdza się to o czym mówiłem w pierwszym poście z tej serii – zdobytą w tym kursie wiedzę będziesz mógł łatwo przenieść na inne systemy, ponieważ wykorzystywane są w nich takie same mechanizmy 🙂 Dzisiejszy post ma rolę wprowadzającą do semaforów, rozwijany będzie jeszcze w kolejnych wpisach przy okazji opisywania innych zagadnień.… Czytaj dalej

Kurs FreeRTOS #4: zadania i priorytety – dodatkowe przykłady

freertos przykłady

W tym poście postaram się dokładnie zobrazować informacje przedstawione w poprzednim wpisie. Myślę, że ten artykuł rozwieje wszelkie wątpliwości. Utworzymy kilka zadań, zajmiemy się priorytetami, na przykładach zobaczymy jak wygląda przełączanie kontekstu oraz wykorzystamy funkcje typu Hook. Ponadto, nauczysz się jak przekazywać parametry do zadań oraz dowiesz się czym jest zagłodzenie zadania. Zahaczymy także o makra Trace Hook służące do śledzenia i analizy zachowania systemu FreeRTOS.Czytaj dalej

Protokół MQTT #2: Paho Client

paho client

Jak wiadomo z poprzedniej części w modelu publish/subscribe występują dwa podstawowe elementy, pomiędzy którymi przesyłane są wiadomości. Są nimi klienci i broker. W naszym przypadku broker będzie zawsze gotowym rozwiązaniem, zainstalowanym gdzieś na komputerze albo udostępnionym w chmurze (np. Microsoft Azure, AWS), z którym będziemy się po prostu łączyli. Nie ma potrzeby i sensu stawiania go na niewielkim mikrokontrolerze. Z naszego punktu widzenia najbardziej interesujący jest klient i nim zajmiemy się w tym oraz następnych wpisach.… Czytaj dalej

Protokół MQTT #1: zasada działania

zasada działania MQTT

Tym wpisem rozpoczynamy serię na temat bardzo popularnego w IoT i M2M protokołu o nazwie MQTT. Jeśli interesujesz się koncepcją Internetu Rzeczy to pewnie już ta nazwa obiła Ci się kiedyś o uszy. Jeśli nie, to na pewno warto się z tym terminem zapoznać i teraz masz ku temu idealną okazję 🙂 Na początku przedstawię trochę teorii, a następnie wykorzystamy protokół w praktyce.… Czytaj dalej

Menu na LCD #4: implementacja (rozszerzenie)

Rozszerzona implementacja menu na LCD

W tej części zajmiemy się delikatnym rozbudowaniem implementacji z poprzedniego artykułu. Zobaczysz jak za pomocą jednego przycisku lub enkodera zrealizować wiele funkcji w zależności od sytuacji, np. przechodzenie w górę menu i rozjaśnianie LCD. Ponadto, dodamy wyświetlanie nagłówków przy każdym poziomie menu tak jak było to pokazane na filmie demonstracyjnym we wprowadzeniu.… Czytaj dalej