Kurs TECHNIK PROGRAMOWANIA embedded. Język C od podstaw.
Kurs poświęcony jest w całości nauce programowania mikrokontrolerów w języku C z ogromnym naciskiem na techniki programowania. Jest to PIERWSZY TAKI kurs w Polsce, gdzie zastosowano plan dydaktyczny wprost z tzw Bluebooka, czyli pierwszej książki na rynku polskim wydanej w 2011 roku, która do dzisiaj obowiązuje na wielu uczelniach technicznych i szkołach średnich jako lektura obowiązkowa. Takie podejście pozwala nam mieć pewność, że trafiłeś w najlepsze ręce, dlatego nowoczesny proces przekazu wiedzy w postaci wideo OnLine może zapewnić najszybszy i najlepszy proces poznawczy.
🔧 Kurs „C dla Elektronika” – Od pętli for() do pełnoprawnych projektów embedded
„C dla Elektronika” to kompletny, praktyczny kurs języka C zaprojektowany specjalnie z myślą o elektronikach – zarówno początkujących, jak i tych, którzy chcą wreszcie przejść z Arduino IDE na programowanie niskopoziomowe z prawdziwego zdarzenia. Kurs prowadzony jest metodycznie – od absolutnych podstaw języka C, przez zrozumienie działania mikrokontrolerów AVR, aż po pełne projekty z wykorzystaniem UART, ADC, PWM, I2C, SPI, 1-Wire i CAN.
To nie jest zwykły kurs języka C. Tu uczysz się języka w kontekście realnej pracy z mikrokontrolerem – kompilacja, wskaźniki, pamięci, bity, porty, rejestry i przerwania przestają być straszne, bo każdy temat kończy się praktyką i gotowym fragmentem kodu, który zrozumiesz od podszewki.
Zamiast przepisywać cudze przykłady, nauczysz się samodzielnie analizować, planować i tworzyć działające rozwiązania – z debugowaniem, przemyślaną strukturą plików, użyciem preprocesora i z myślą o przyszłej rozbudowie projektu.
🧠 Umiejętności, które opanujesz w kursie „C dla Elektronika”:
Fundamenty języka C: Składnia, typy danych, instrukcje warunkowe, pętle, funkcje, operatory, wyrażenia logiczne i bitowe, enumy, wskaźniki, malloc i struktury – wszystko objaśnione po ludzku, na przykładach dla elektronika.
Praktyczna praca z mikrokontrolerem AVR: Zrozumiesz, jak działa reset, zasilanie, porty I/O, zegary, taktowanie, rejestry i pamięci. Nauczysz się korzystać z dokumentacji i analizować noty katalogowe z lekkością.
Zaawansowana organizacja projektu: Podział na pliki, zasady linkowania, main()
, weak
, #define
, #ifdef
, funkcje zagnieżdżone i organizacja dużych projektów embedded z myślą o rozszerzalności.
Programowanie peryferiów: Obsługa przycisków i LED-ów z eliminacją drgań styków, ADC i pomiar napięcia, generacja PWM dla sterowania diodami RGB, wyświetlacze LCD HD44780 (warstwa fizyczna i abstrakcyjna), komunikacja szeregowa (UART, RS232/485), magistrale I2C, SPI, 1-Wire i CAN.
Systemy czasu rzeczywistego: Maszyny stanów, timery sprzętowe i programowe, przerwania, zdarzenia (events), callbacki i podejście do warstwy logicznej i sprzętowej w dużych projektach.
Realne, samodzielne projekty embedded: Pełny UART z callbackami i ATOMIC_BLOCK
, pilot IR, odbiornik podczerwieni, komunikacja CAN, sterowanie silnikami i czujnikami, wskaźniki, dynamiczna pamięć i więcej.
🎯 Ten kurs jest dla Ciebie, jeśli:
✅ Jesteś elektronikiem i chcesz nauczyć się programowania C z naciskiem na mikrokontrolery
✅ Masz już dość Arduino IDE i szukasz profesjonalnego podejścia do embedded
✅ Chcesz tworzyć solidne, dobrze zorganizowane projekty w C – z komentarzami i debugowaniem
✅ Zależy Ci na tym, by zrozumieć, co naprawdę dzieje się „pod maską”
✅ Przerażają Cię wskaźniki i rejestry? Po tym kursie staną się Twoimi sprzymierzeńcami
✅ Lubisz mieć wszystko wyjaśnione krok po kroku, z pełnym kontekstem i przykładami
✅ Chcesz pracować z rzeczywistym sprzętem – LED-y, przyciski, czujniki, komunikacja szeregowa, a nie tylko z „printf()”
—————————————————————————————–
Oto PEŁNA AGENDA kursu wraz z podanymi czasami lekcji. Łączny czas wszystkich lekcji w kursie wynosi 133 godziny i 24 minuty.
🔧 Przygotowanie środowiska pracy
- Przygotowanie środowisk programistycznych i oprogramowania narzędziowego do kursu (100 min)
- Polecany sprzęt do ćwiczeń i wyjaśnienie dlaczego ten rodzaj sprzętu (106 min)
- Procesory AVR – jak łatwo czytać noty katalogowe AVR? (106 min)
- Pusty program w C (różnice AVR vs ARM/STM) – dlaczego AVR na start? (59 min)
- Pierwszy program – Hello World! – miganie diodą LED (104 min)
- Podsumowanie modułu 01. Bootloadery Arduino oraz MkBootloader, DUDE Phantom (150 min)
📡 Poznajemy platformę sprzętową do ćwiczeń – AVR
- Mikrokontrolery AVR – informacje ogólne (35 min)
- Pamięci w procesorach AVR (27 min)
- Układ resetu mikrokontrolera AVR (25 min)
- Zagadnienia związane z zasilaniem (124 min)
- Symbole procesorów i oznaczenia ich obudowy (15 min)
- Sposoby taktowania procesorów AVR (95 min)
- Programowanie ISP – wybór programatora sprzętowego i kwestia SLOW SCK (33 min)
- Jak sobie radzić z problemami sprzętowymi i nie tylko? Analizator stanów logicznych (80 min)
- Wewnętrzne moduły procesorów AVR (102 min)
📘 Podstawy języka C – Teoria
- Język C – zagadnienia ogólne (45 min)
- Definicja czy Deklaracja – oto jest pytanie! (55 min)
- Wyrażenia logiczne (warunkowe) w języku C (54 min)
- Liczby binarne i heksadecymalne (szesnastkowe) (112 min)
- Instrukcja IF() … ELSE (83 min)
- Pętla while() + Predator Clock / zegarek binarny (33 min)
- Pętla do {} while() (10 min)
- Pętla for() (40 min)
- Instrukcja continue (16 min)
- Instrukcja break (10 min)
- Instrukcja switch() case (29 min)
- Instrukcja goto (14 min)
- Czym jest ZMIENNA? (17 min)
- Podstawowe typy w języku C – typy proste (70 min)
- Instrukcja typedef (19 min)
- Zakres widoczności zmiennych (21 min)
- Typ void (13 min)
- Specyfikator const (20 min)
- Specyfikator volatile (11 min)
- Specyfikator register (12 min)
- Typ wyliczeniowy enum (57 min)
- Podsumowania – odpowiedzi, pytania – typy i zakresy typów enum (73 min)
- Stałe dosłowne i literały w języku C (60 min)
- Podstawowe operatory arytmetyczne (38 min)
- Podstawowy operator przypisania (23 min)
- Operatory inkrementacji i dekrementacji (32 min)
- Operatory relacji (20 min)
- Liczby zmiennoprzecinkowe bez użycia
float
! (139 min) - Operatory logiczne (67 min)
- Operatory bitowe AND, OR, XOR, NOT (133 min)
- Pozostałe operatory przypisania – dwuargumentowe (57 min)
💻 Kontynuacja C – bardziej zaawansowane zagadnienia
- Operator wyrażenie warunkowe (26 min)
- Operator pobierania adresu (42 min)
- Operator
sizeof()
oraz nowy typsize_t
(36 min) - Priorytety operatorów w C (25 min)
- Bity – Ustawianie, Zerowanie, Zmiana Stanu. PODSUMOWANIE i Mega ZADANIE (150 min)
- Pozostałe operatory i Typy złożone w C (31 min)
- Rzutowanie typów i domyślna promocja do INT w C (44 min)
- Wstęp do funkcji w języku C – pierwsze wzorce w kodzie (64 min)
- Funkcje w C – PODSTAWY, zasada działania „od podszewki” (133 min)
- Podział projektu na pliki – zasady pracy z rozbudowanymi projektami (73 min)
- Funkcja
main()
– kompilator i linker – przełączniki, atrybutweak
+ asembler (121 min) - PREPROCESOR i jego dyrektywy (172 min)
- Funkcje zagnieżdżone (Nested Functions),
printf()
dla AVR, pierwsze zabawy z terminalem (90 min) - Tablice w języku C – liczby (100 min)
- Tablice / ŁAŃCUCHY / STRINGI w języku C (83 min)
- Wskaźniki WSTĘP – Little Endian i Big Endian (224 min)
- Wskaźniki PRAKTYKA – ćwiczenia, zagadki i zmienne z malloc (231 min)
- Struktury, Pola bitowe, Unie i wskaźniki (220 min)
- Dynamiczna alokacja pamięci w C –
malloc()
,calloc()
,realloc()
,free()
(60 min)
🧪 Warsztaty – język C w praktyce
- PROGMEM i EEPROM – zasady pracy z pamięcią FLASH i EEPROM (103 min)
- Rejestry Kierunku, Wejścia i Wyjścia w AVR
- Fuses, Lockbity – MkAvrCalculator (67 min)
- MkBootloader od A… prawie do Z (24 min)
- Obsługa przycisków, diody LED, drgania styków (47 min)
- Timery sprzętowe i programowe, kalibracja OSCAL i taktowanie zewn. oscylatora RC (113 min)
- Multipleksowanie LED – praktyczne zastosowanie timerów sprzętowych i przerwań (127 min)
- Wyświetlacz LCD HD44780 – warstwa fizyczna i abstrakcyjna w praktyce (198 min)
- Sterowanie PWM – sprzętowe i programowe – kolorowa dioda RGB (179 min)
- Pomiar napięcia za pomocą ADC (200 min)
- Komunikacja RS232 / RS485 (291 min)
- Magistrala I²C – RTC, zewn. pamięć EEPROM + zapis kilku struktur (977 min – ponad 16 godzin!)
- Magistrala SPI – Software i hardware SPI, obsługa LCD (147 min)
- Magistrala 1-Wire – czujniki temperatury typu DS18x20 (116 min)
- Sterowanie silnikami DC (35 min)
⏱️ Wstęp do systemów czasu rzeczywistego
- Czym są timery programowe? + Maszyna stanów (210 min)
- Jak zrobić timery programowe gdy brakuje timerów sprzętowych (57 min)
- EVENTS czyli zdarzenia – jak ich używać? (34 min)
- CALLBACK – co to za „zwierzę” i jak to zrozumieć? (107 min)
- Warstwa ABSTRAKCYJNA i FIZYCZNA projektu – callbacki i zdarzenia w dużym projekcie (64 min)
🛠️ Projekty
- Pełny UART na zdarzeniach i callbackach + ATOMIC BLOCK w C (73 min)
- Odbiornik podczerwieni (75 min)
- Pilot na podczerwień (81 min)
- Magistrala CAN – podstawy i pierwsza komunikacja z poziomu AVR (210 min)