Artykuły

Oryginalnie, skonstruowany przez firmę DALLAS SEMICONDUCTOR, interfejs 1-Wire (One Wire) przeznaczony był do komunikacji na bardzo małe odległości. Został opracowany w celu podłączenia układu peryferyjnego do mikrokontrolera z użyciem tylko jednego wyprowadzenia. Miał być odpowiedzią na pytanie: co zrobić, gdy pamięć RAM mikrokontrolera jest za mała aby pomieścić wszystkie zmienne i jednocześnie zbyt trudno jest zmienić mikrokontroler na inny albo też brak jest w linii produkcyjnej takiego, który spełniałby wymagania? czytaj więcej
Jednym z największych „pożeraczy” czasu i energii programisty, obok uruchomienia programu, jest tak zwany interfejs użytkownika. Mikrokontroler nie potrzebuje do pracy wyświetlacza, klawiatury, diod świecących LED i temu podobnych elementów, o ile nie jest to ściśle związane z operacjami zapisu lub odczytu danych. Wszystkie te drobiazgi są potrzebne nam, ludziom, abyśmy mogli wprowadzać parametry i poznać rezultat wykonania przez mikrokontroler określonego programu. Te przykłady programowania to jeden z elementów interfejsu użytkownika. Są to jedno- i dwupoziomowe menu, wyświetlane na wyświetlaczu LCD 4 linie po 20 znaków. czytaj więcej
Pisząc program w języku C czasami warto zadać sobie pytanie: czy naprawdę muszę tworzyć funkcję dokonującą konwersji wartości dziesiętnej na szesnastkową? Przecież chociażby biblioteka o nazwie STDIO zawiera w sobie możliwość formatowania zarówno danych wejściowych, jak i wyjściowych. Czy nie ma możliwości skorzystania z czyjejś pracy i zaoszczędzenia własnego czasu? czytaj więcej
Budując urządzenia z mikrokontrolerami wcześniej czy później staniesz przed zagadnieniem rozwiązania sposobu komunikacji z użytkownikiem. We wcześniejszych odcinkach „kursu” zajmowaliśmy się prezentacją wyników za pomocą wyświetlacza LED czy LCD. Czasami jednak trzeba również wprowadzić pewne parametry – na przykład nastawę czasu, wielkość napięcia itp. Możliwe jest tu wykorzystanie różnych technik, lecz jedna z nich przyjęła się u zarania dziejów urządzeń elektronicznych i króluje do dziś. Nic też nie wskazuje na to, aby szybko została wyparta przez inne rozwiązania. Mowa o klawiszu lub grupach klawiszy zwanych klawiaturami. czytaj więcej
Pakiet RIDE firmy Raisonance to zbiór narzędzi umożliwiających pisanie i uruchamianie programów w języku C i asemblera dla mikrokontrolerów ST62 firmy STM, XA firmy Philips oraz różnych pochodzących z rodziny 8051. Ze względu na specyfikę artykułu, pominę zagadnienia dotyczące środowiska programowania ST62 i XA – zajmiemy się wyłączenia informacjami dotyczącymi mikrokontrolera 8051. Nie oznacza to jednak, że uwzględniając specyfikę pominiętych mikrokontrolerów nie można tu opisanych metod wykorzystać również i dla nich. czytaj więcej
Rzadko zdarza się, aby mikrokontroler, którego zamierzamy użyć, oferował nam wszystkie potrzebne układy peryferyjne. Jeżeli jednak już tak jest, to albo ma również szereg innych, zupełnie niepotrzebnych, albo też przeraża jego cena. Dobrym rozwiązaniem tak przedstawionego problemu jest użycie taniego mikrokontrolera i dołączenie do niego w możliwie jak najtańszy sposób możliwie jak najtańszych układów peryferyjnych. Tu jednak pojawia się pewien problem – dołączenie układów zewnętrznych... czytaj więcej
O sposobie, w który są obsługiwane przerwania w języku C pisałem już kiedyś, przy okazji omawiania podstaw programowania. Dziś wykorzystamy programowanie przerwań do budowy prostego licznika. Uzyjemy w nim przerwania generowanego przez Timer 1 do obsługi wyświetlacza LED oraz innego, generowanego przez opadające zbocze sygnału na wejściu INT0 do zliczania impulsów zegarowych. W programie wykorzystamy też wskaźniki i ich arytmetykę – będzie okazja co nieco się nauczyć. czytaj więcej
Poprzednio, przy okazji opisu sposobu obsługi modułu wyświetlacza LCD, wspominałem o zbiorach nagłówkowych oraz tak zwanych project file. Myślę, że zarówno jedne, jak i drugie, będą dla nas bardzo użyteczne i wymagają kilku słów wyjaśnienia. Co to jest „project file”? Pod tą nazwą kryje się po prostu lista zbiorów składających się na nasz program. Wracając do przykładu z poprzedniego odcinka - jeśli na podstawie programu do obsługi wyświetlacza LCD utworzymy bibliotekę, to musimy ją w jakiś sposób dołączyć do programu głównego. czytaj więcej
Zacznijmy od jakiegoś użytecznego programu. Czegoś, co przyda nam się w przyszłości tak, aby nie marnować cennego czasu. Proponuję na początek podłączenie wyświetlacza LCD w trybie 4 bity. Rozbierzemy na kawałeczki poszczególne fragmenty programu analizując jego kod. To najlepsza droga do zrozumienia całości. czytaj więcej
Pisząc programy już od kilkunastu lat, dostrzegam pewien trend. Widoczny jest on nie tylko wśród środowisk programowania dla „dużych” komputerów, ale również dla mikrokontrolerów jednoukładowych. Języki programowania stają się coraz łatwiejsze do opanowania. Oferują mnóstwo gotowych procedur, których użycie nawet dziecko jest w stanie zrozumieć. Doskonałym przykładem jest język Bascom, w którym rzeczy skomplikowane i trudne stają się bardzo łatwe. Bascom jednak jako taki ma jedną podstawową wadę – tworzy kod, który jest uniwersalny a przez to mało optymalny, zajmuje dużo pamięci. Oczywiście – nowoczesne mikrokontrolery mają tej pamięci coraz więcej, jednak ma to także inne reperkusje. Sam często korzystam z języków takich, jak Bascom, zwłaszcza jeśli szybko potrzebuję mieć program, w stosunku do którego nie mam zbyt wielkich wymagań. Jednak stojąc przed zadaniami „poważniejszymi”, nieodmiennie sięgam po język C i asembler. czytaj więcej