Robotyka, Embedded, C
W środę 24 lutego o godzinie 20:00 organizuję webinar: Jak pisać bardziej zrozumiały kod w C? (który po prostu działa) Aby nieprzegapić startu – możesz się zapisać korzystając z linka powyżej. O czym będę mówić? Jeżeli piszesz domowe projekty na mikrokontrolery i myślisz o pracy jako programista niskopoziomowy – na pewno znajdziesz coś dla siebie. […]
Jak oceniasz swoją znajomość C? Czy programowanie w tym języku nie ma przed Tobą żadnych tajemnic? Spróbuj swoich sił w tym quizie!
W prawie każdym projekcie potrzebujemy przechowywać jakieś wartości, które zmieniamy w zależności od wersji projektu. Najbardziej oczywistym przykładem jest właśnie numer wersji. Ale czasem chcemy wyświetlać również commit id z gita, datę kompilacji, czy użytą wersję kompilatora. Nie muszę chyba dodawać, że aktualizacja takich danych ręcznie jest niezwykle uciążliwa, a czasem wręcz niemożliwa (jak dodać […]
Już od kilku lat w styczniu podsumowuję, co wydarzyło się w poprzednim roku. I za każdym razem przypominam sobie takie zdanie, że przeceniamy ile jesteśmy w stanie zrobić w ciągu jednego dnia, ale nie doceniamy ile jesteśmy w stanie zrobić w ciągu jednego roku. Za każdym razem taka retrospektywa pozwala mi zrozumieć jak wiele się […]
W tym artykule pokażę jak napisać prosty skrypt cmake. Zrealizujemy najważniejsze zadania, jakich wymagamy od skryptu budowania: Dodawanie plików źródłowych. Określenie ścieżek include. Określenie globalnych define’ów. Dodanie bibliotek statycznych. Dodanie flag kompilacji. Dzięki skryptowi CMake możemy łatwo uruchamiać kompilację na różnych systemach operacyjnych, systemach budowania i generować projekty na różne IDE. Minimalny skrypt Minimalny skrypt […]
Cmake jest fajną alternatywą dla pisania własnych skryptów makefile, czy korzystania z wyklikanej konfiguracji projektu w naszym IDE. Jednak początkowo może być trudno zmusić go do działania z mikrokontrolerami. Dlatego w tym artykule pokażę jak stworzyć plik konfiguracyjny dla naszego toolchaina umożliwiający budowanie projektów na STM32. Do czego służy cmake? Cmake to narzędzie służące do […]
W poniedziałek (21.09) zapraszam Cię na pierwszy po wakacyjnej przerwie LIVE na YouTube. Tematem będzie “Jak stać się lepszym programistą C?”. W trakcie tego live porozmawiamy sobie o umiejętnościach potrzebnych w pracy programisty C. Dowiesz się między innymi: W jaki sposób te umiejętności podnosić i na czym szczególnie się skupić. Czym się kierować przy wyborze […]
Często podczas nauki C słyszymy, że tablica tak naprawdę jest wskaźnikiem. Oczywiście takie uproszczenie pomaga na początku zrozumieć pewne rzeczy, ale w końcu warto poznać różnice. Skąd ten pomysł? Jeżeli traktujemy tablice tak samo jak wskaźniki, łatwiej nam zapamiętać, że: Operator indeksu [] możemy używać na wskaźnikach. Arytmetyka wskaźników działa na tablicach. Arytmetyka wskaźników dodaje/odejmuje […]
W C++ trwają starania, żeby praktycznie nigdy nie trzeba było korzystać z preprocesora. Jednym z typowych zastosowań define w C jest deklarowanie stałych będących rozmiarami tablic. W C++ od dawna możemy używać w tym celu const, a od jakiegoś czasu (dokładniej od C++11) również constexpr. Jednak kiedy zechcemy przenieść te praktyki do C czeka nas […]
Od jakiegoś czasu biorę udział w akcji #30devstories i publikuję nagrania na YouTube. Chodzi w skrócie o to, żeby nagrać 30 filmików związanych z różnymi aspektami programowania. Na razie opublikowałem 6 odcinków: Więcej o samej akcji mówię tutaj: Kolejne odcinki znajdziecie na moim kanale YouTube. Jeżeli również chcesz wziąć udział w akcji – weź kamerę […]
Ostatnio było o inicjalizacji tablic, dzisiaj pora na struktury. Ostatnio zdarzył mi się projekt, gdzie kompilator nie wspierał inicjalizacji z podawaniem nazwy pól. Dlatego pomyślałem, że dobrze będzie zebrać w jednym miejscu opcje inicjalizacji, od jakich standardów są dostępne i co się dzieje, kiedy nie podamy wartości dla wszystkich pól. Typowa inicjalizacja Klasyczna inicjalizacja wszystkich […]
Jakiś czas temu widziałem taki kod inicjalizujący tablicę: Celem autora było zainicjalizowanie wszystkich elementów tą samą wartością. Pewnie dla wielu z Was błąd w tej linijce wyda się oczywisty. Ale skoro inicjalizuje wszystkie wartości na zero, to można pomyśleć, że analogiczny zapis inicjalizuje wszystko na -1. Niestety tylko indeks zerowy przyjmie wartość -1, natomiast cała […]
W tym artykule pokażę pewne niuanse związane z typem bool w C. Wartości tego typu są wynikami operacji logicznych i warunkami w ifach i pętlach. Jednak bool nie jest do końca pełnoprawnym typem, a raczej intem w przebraniu. Sytuację próbowano poprawić w standardzie C99, ale teraz problem jest taki, że w różnych kontekstach bool może […]
Od jakiegoś czasu pracuję nad szkoleniem online C dla zaawansowanych. Ostatnio uruchomiłem stronę szkolenia: https://cdlazaawansowanych.pl/ Na razie możecie na niej przeczytać trochę jak będzie wyglądać ten program. Możecie także zapisać na mój newsletter i mieć pewność, że nie przegapicie żadnych informacji dotyczących szkolenia i otrzymacie najlepszą ofertę dołączenia. Przy okazji na listę mailową wrzucam różne […]
Ostatnio na live omawiałem IDE i debugery sprzętowe w embedded. Nagranie jest dostępne tutaj: Pod nagraniem są też timestampy i linki. Wyszło tego bardzo dużo więc lepiej to będzie zebrać we wpisie. Od razu zapraszam również na kolejny live w czwartek 28 maja o 20:00, gdzie tematem będą języki programowania w embedded. Rodzaje IDE Możemy […]
Robotyka, Embedded, C
Programowaniem zajmuję się zawodowo od 2012 roku. Moją specjalnością są systemy embedded, pracowałem już nad systemami safety critical, inteligentymi budynkami, czy Internet of Things. Jestem również wielkim fanem robotyki i w wolnym czasie robię własnego robota micromouse.