Kurs programowania mikrokontrolerów AVR
Spotkanie V
W czwartek 29 marca odbyło się piąte spotkanie szkoleniowe z prostych systemów wbudowanych w języku C dla mikrokontrolerów AVR. Podczas szkolenia omówiono pamięć EEPROM, pozostałe interfejsy szeregowe oraz przykłady złożonych programów w oparciu o automat stanów i przerwania od liczników.
Zapis i odczyt pamięci EEPROM w języku C
Czasy zapisu i odczytu pamięci EEPROM
Interfejs szeregowy SPI
Konfiguracja interfejsu SPI w języku C
Interfejs szeregowy I2C
Konfiguracja interfejsu szeregowego I2C
Przykład programu zegara z budzikiem w języku C
Przykład programu analizatora widma w języku C
Przykład programu animacji na wyświetlaczach LED w języku C
Przykład programu polskich znaków na LCD w języku C
Przykładowe programy 
Spotkanie IV
W sobotę 24 marca odbyło się czwarte spotkanie szkoleniowe z prostych systemów wbudowanych w języku C dla mikrokontrolerów AVR. Podczas szkolenia omówiono generowanie sygnałów PWM, przykład przetwornika C/A oraz komunikacje przy pomocy portu szeregowego UART.
Uruchomienie licznika z układem porównawczym
Ustawienie częstotliwości i wypełnienia dla PWM
Wystawienie sygnału PWM na port mikrokontrolera
Program rozświetlania i gaszenia płynnego LED
Przykład przetwornika C/A PWM+filtr DP
Przykładowy program w języku C przetwornika C/A
Przerwania od bloku porównawczego
Omówienie działania portu szeregowego
Konfiguracja portu szeregowego mikrokontrolera
Ustawianie prędkości komunikacji
Błędy zegara portu szeregowego
Terminal putty
Przykładowy program w języku C komunikacji z PC
Przerwania od portu szeregowego
Przykładowe programy 
Spotkanie III
W sobotę 20 stycznia odbyło się trzecie spotkanie szkoleniowe z prostych systemów wbudowanych w języku C dla mikrokontrolerów AVR. Podczas szkolenia omówiono system obsługi przerwań mikrokontrolera AVR oraz maszynę stanów w połączaniu z obsługą przerwań.
System przerwań mikrokontrolera AVR
Globalne zezwolenie przyjmowania przerwań
Wektory przerwań
Maskowanie przerwań
Implementacja obsługi przerwania w języku C
Przykład obsługi przerwania od bloku porównującego licznika Timer2
Konfiguracja przerwania na zadany czas - 1ms
Multipleksowanie wyświetlacza LED w przerwaniu
Automat stanów
Wielozadaniowe programowanie w języku C
Grafy opisu przestrzeni stanów dla przykładowego automatu
Implementacja automatu stanów w języku C (switch, case)
Program nastawianego timera zliczającego w dół – obsługa przerwań + automat stanów
Przykładowe programy 
Spotkanie II
W sobotę 16 grudnia odbyło się drugie spotkanie szkoleniowe z prostych systemów wbudowanych w języku C dla mikrokontrolerów AVR. Podczas szkolenia zostały omówione wraz z przykładami układy licznikowe, przetworniki analogowo-cyfrowe oraz wyświetlacze LED i LCD:
Budowa układów licznikowych T0, T1 i T2
Rejestry konfiguracyjne i stanu liczników
Źródła sygnały zegarowego
Preskalery - dzielniki sygnału zegarowego
Uruchomienie licznika
Budowa przetwornika analogowo-cyfrowego
Rejestry konfiguracyjne przetworników A/C
Napięcie odniesienia przetwornika A/C
Układ multipleksera analogowego
Obsługa wyświetlacza siedmiosegmentowego LED
Multipleksowanie wyświetlaczy LED
Program wyświetl liczbę 4 cyfrową
Program miliwoltomierz czterocyfrowy z wyświetlaczem LED
Budowa i działanie wyświetlacza LCD
Sterowanie wyświetlaczem LCD ze sterownikiem HD44780
Linie sterujące i danych wyświetlacza
Program wyświetlający napis "Alibaba"
Przykładowe programy 
Spotkanie I
W sobotę 2 grudnia odbyło się pierwsze spotkanie szkoleniowe z prostych systemów wbudowanych w języku C dla mikrokontrolerów AVR. Podczas szkolenia zostały omówione podstawy związane z przygotowaniem kompilatora i uruchomieniem prostego programu zarówna w Assemblerze jak i języku C:
Instalacja środowiska IDE do programowania mikrokotrolerów AVR (WinAVR, AVR Studio i HapSim)
Instalacja programatora AVR ISP STK500
Uruchomienie zestawu ZL3AVR
Omówienie budowy mikrokontrolera AVR
Omówienie pamięci ROM, RAM i rejestrów specjalnych
Język maszynowy i Assembler
Wgrywanie programu do mikrokontrolera plik hex
Przykładowe programy w asemblerze
a) zapalenie diod LED
b) obsługa klawisza – warunki w Assemblerze
c) miganie diodami LED – pętle w Assemblerze, wskaźnik stosu i podprogramy
Pierwszy program w języku C
a) zapalenie diod LED
b) obsługa klawisza – warunki if
c) miganie diodami LED – pętle while, for
AVR Symulator - symulacja programu w Assemblerze i języku C
Narzędzia symulacyjne HapSim - diody LED, przyciski, wyświetlacze
Optymalizacja kodu w języku C
Konfiguracja kompilatora
Podgląd skompilowanego programu – plik lss
Bity konfiguracyjne mikrokontrolera AVR – przełączanie źródła zegara i wyłączenie JTAG
Przykładowe programy 
W ramach programu UE Synergia jest organizowany w naszej szkole kurs programowania prostych systemów wbudowanych w języku C na bazie mikrokontrolerów rodziny AVR. Rozpoczęcie kursu 2 grudnia 2017r. (sobota) godzina 7:15 w sali 201.