Powrót

Mikroprocesorowa ośla łączka, część 22

Tworzenie oprogramowania dla mikrokontrolerów, jako warunek konieczny wymaga znajomości samego języka jak i posługiwania się oprogramowaniem narzędziowym. W kilku poprzednich częściach było podsumowanie samego języka, ale czy ono wystarczy?

Zachęcam Czytelników do własnych prób tworzenia oprogramowania. Zdobyta w ten sposób wiedza jest bezcenna. Tworząc program można napotkać wiele problemów, których pokonanie znacząco wpływa na samodzielność. Ogólnie programowanie to sztuka łączenia kilku elementów w jedną całość. Jednym z oczywistych jest sama znajomość języka, ale istnieje coś ważniejszego – umiejętność tworzenia algorytmów. Pod tym pojęciem kryje się przepis na niezbędne działania: co i w jakiej kolejności wykonać, by program realizował założone cele. Skonstruowany algorytm należy zapisać jako program, posługując się możliwościami danego języka (w naszym przypadku języka C).

W dotychczasowych rozważaniach wystarczająco dokładnie zostały opisane dwa głównie elementy dotyczące interakcji użytkownika z mikrokontrolerem: możliwość „zadania” mikrokontrolerowi informacji oraz możliwość poinformowania użytkownika o efektach działania programu. Do pierwszej grupy można zaliczyć różnego rodzaju klawiatury. Stosowane rozwiązania dotyczyły wariantów prostych (gdzie piny portów były łączone przez przyciski do masy) oraz klawiatur matrycowych pozwalających na obsługę dużo większej liczby przycisków za pomocą niewielkiej liczby pinów portów (jak przykładowo klawiatury telefoniczne). Wraz z opisem różnych wariantów klawiatur udostępnione były dedykowane im pliki zawierające ich programową obsługę. Po przeciwległej stronie interakcji użytkownika oraz mikrokontrolera występują wyświetlacze. Były używane wyświetlacze 7-segmentowe LED, pozwalające na prezentację danych liczbowych (plus trochę innych znaków dających się utworzyć przy użyciu siedmiu segmentów). Bardziej uniwersalne są moduły LCD, które pozwalają wyświetlić każdy znak ze zbioru ASCII.

Istniejąca programowa obsługa obu „styków” mikrokontrolera z otoczeniem stanowi bazę do innych ćwiczeń. W tym miejscu mogę zaproponować Czytelnikom przykładowo stoper, który mierzy czas od jednego zdarzenia (naciśnięcia przycisku typu start) do drugiego (naciśnięcia przycisku stop). W ten sposób można zbudować „zabawkę” do pomiaru refleksu.

Tworząc jakikolwiek program nie sposób ustrzec się od błędów i pomyłek dotyczących opisu algorytmu w języku C (pomijam błędy samego algorytmu). Wiele z tych błędów daje się łatwo ustalić i można wnieść korektę do programu. Jednak niektóre z nich nie są aż tak oczywiste i trzeba się trochę natrudzić aby zlokalizować „wadliwe” miejsce w programie.

Bazą do tematu będzie obsługa klawiatury matrycowej, opisana w artykule Mikroprocesorowa ośla łączka, część 15 (ZE 8/2025), dotycząca układu pokazanego na rysunku 1.

Rysunek 1

Materiały dodatkowe związane z tamtym artykułem nie zawierają niżej opisanych błędów. Materiały dodatkowe do aktualnej części są odpowiednio spreparowane i dołączone do bieżącego artykułu.

Proste błędy

Rzeczywista technika pisania tekstu programu nie jest prostym wpisaniem odpowiedniej treści jako tekstu programu. Przy tworzeniu funkcji programu podejmowanych jest wiele decyzji. Przykładowo niech zaistnieje potrzeba pokazania na wyświetlaczu modułu LCD jakiegoś znaku. Pamiętamy, że mamy do dyspozycji w module (jako plik nagłówkowy *.h oraz implementacji *.c) odpowiednie już gotowe funkcje. Naturalnym jest, że zostają one użyte. Tak powstał program U107 A (dostępny w materiałach dodatkowych, w rzeczywistości odpowiednio spreparowany program U100 A), którego część pokazuje rysunek 2.

Rysunek 2

Mamy tu wybrane słowa podkreślone czerwoną linią falistą. W ten sposób kompilator wskazuje nam potencjalne „problemy gramatyczne” języka. (…)

——– ciach! ——–

To jest tylko fragment artykułu, którego pełna wersja ukazała się w marcowym numerze czasopisma Zrozumieć Elektronikę (ZE 3/2026). Pełną wersję czasopisma znajdziesz pod tym linkiem. Natomiast niepełna, okrojona wersja, pozwalająca zapoznać się z zawartością numeru ZE 3/2026 znajduje się tutaj.

Andrzej Pawluczuk
apawluczuk@vp.pl

Uwaga! Wskazówki, jak nabyć pełne wersje dowolnych numerów ZE znajdują się na stronie:
https://piotr-gorecki.pl/n11.