Kurs programowania procesorów AVR w C

    Kod handlowy: AVTKURS C
  • Producent: AVT
  • Jest
  • szt.
  • 250,00 zł 220,00 zł

KURS AVT: Kurs programowania procesorów AVR w C

Przeznaczeniem zestawu jest nauka programowania w języku C, w oparciu o kurs zamieszczony na dołączonym nośniku. Zestaw AVT3505 podzielony został na dwie części: płytkę główna i wykonawczą. O ile druga z nich zaprojektowana została głównie z myślą o realizacji projektów przerabianych w kursie, płytka główna stanowi uniwersalny sterownik o sporych możliwościach, które w przyszłości mogą być wykorzystane w innych projektach.

Sercem systemu jest procesor Atmega162. Na płytce znajdują się dwa złącza programujące; standardowe ISP oraz jednorzędowe ISP2. Dołączona przejściówka umożliwia programowanie zestawu dołączonym do kompletu programatorem AVTPROG5.

W zestawie:

  • AVT3505 C - zmontowany dwupłytkowy zestaw uruchomieniowy do nauki programowania w C
  • AVTPROG5 - zmontowany programator USB (współpracuje z AVR Studio)
  • komplet okablowania
  • nośnik (pendrive) z kompletem materiałów i sterowników

Ogólny zarys kursu i najważniejsze zagadnienia:

Część 1

Opis zagadnień:
♦ Gdzie znaleźć, jak zainstalować i skonfigurować WinAVR.
♦ Konfiguracja Programmers Notepad'a oraz dodawanie do niego narzędzi.
♦ Podstawowe informacje o makefile.
♦ Piszemy pierwszy program – miganie diodami.
♦ Symulowanie programu przy pomocy AVRStudio.
Podtytuły:
♦ Krok pierwszy – zbieranie narzędzi
♦ Krok drugi – instalacja i konfiguracja
♦ Krok trzeci – przygotowanie części sprzętowej
♦ Start! - pierwszy program
♦ Jak to działa
♦ Symulacja programu
♦ WinAVR + AVRStudio – konkluzja

Część 2

Opis zagadnień:
♦ Część standardowa pisanego programu
♦ Stałe symboliczne
♦ Jak C wykonuje obliczenia
♦ Podstawowe informacje o zmiennych
♦ Operacje na bitach
Podtytuły:
♦ Małe repetytorium – zaczynamy
♦ Kodowanie – część standardowa
♦ Kompilacja szablonowego pliku
♦ Definicje stałych – zapomnij o “aliasach”
♦ Wyświetlanie – coś prostego
♦ Wyświetlanie – wyższy stopień
♦ Podsumowanie

Część 3

Opis zagadnień:
♦ Pliki nagłówkowe
♦ Przerwania
♦ Format linii a właściwie jego brak
♦ Instrukcja warunkowa if
♦ Umieszczanie tablic w pamięci programu
♦ Funkcje
Podtytuły:
♦ Więcej o plikach nagłówkowych
♦ AVR-GCC – przerwania
♦ Warunki i instrukcja if
♦ “Zmienne” w pamięci programu
♦ Zaczynamy tworzyć funkcje
♦ Podsumowanie

Część 4

Opis zagadnień:
♦ Tworzenie i wykorzystanie pętli: for, while orazdo-while.
♦ Zmienne lokalne.
♦ Generowanie opóźnień przy pomocy przerwań.
♦ Znaczenie zmiennych typu static oraz volatile.
♦ Sposób odczytu portów.
♦ Tworzenie oraz wykorzystanie wskaźnika na funkcję.
Podtytuły:
♦ Ogólnie o programie
♦ WyświetlDEC
♦ Generowanie opóźnień
♦ Obsługa klawiatury
♦ Poprawa obsługi klawiatury
♦ Podsumowanie

Część 5

Opis zagadnień:
♦ Prosta obsługa wyświetlacza LCD.
♦ Przydatne makra do obsługi portów.
♦ Pisanie oraz używanie makr.
♦ Samodzielne pisanie funkcji opóźnień (trudniejsze ale dokładne).
♦ Wykorzystanie wstawek asemblerowych.
♦ Elementy zagadnienia optymalizacji kodu przez kompilator.
♦ Obsługa i wykorzystanie napisów.
♦ Wskaźniki.
Podtytuły:
♦ Mniej definicji portów
♦ Obsługa wyświetlacza – Przygotowania
♦ Nagłówki, wyprowadzenia, stałe (dotyczy konkretnego kodu)
♦ Funkcje opóźnień (korzystamy ze wstawek asemblerowych)
♦ Funkcje niskiego poziomu (sterowanie wyprowadzeniami wyświetlacza LCD)
♦ Wysyłanie komend oraz danych
♦ Inicjacja wyświetlacza
♦ Pierwsze uruchomienie
♦ Wprowadzamy łańcuchy
♦ Wskaźniki
♦ Wykorzystanie pamięci programu
♦ Koniec pierwszej tury

Część 6

Opis zagadnień:
♦ Rozbijanie kodu programu na wiele plików.
♦ Kompilacja warunkowa.
♦ Statyczne funkcje rozwijane w miejscu wywołania (static inline).
♦ Programowa obsługa interfejsu I²C.
Podtytuły:
♦ Dzielenie kodu programu
♦ Zanim zaczniesz (przygotowanie do pisania nowego programu – krótkie przypomnienie)
♦ Pierwszy moduł – delay
♦ Makra oraz definicja sprzętu
♦ Wyświetlacz LCD
♦ Interfejs I²C – sposób przesyłania danych
♦ Szybkość transmisji (interfejs I²C)
♦ I²C – funkcja opóźnienia połówkowego
♦ I²C – reszta funkcji
♦ Plik główny
♦ Konfiguracja makefile
♦ Porządkowanie projektu
♦ Podsumowanie
♦ Propozycje zmian

PRZEPROWADZKA

Ta, odrębna część powstała z okazji nowej płytki testowej. Omówione zostały bity konfiguracyjne procesora ATmega162 oraz sposób ich konfiguracji z poziomu programatora BASCOM. Na przykładach pokazane zostało w jaki sposób przenieść poprzednio napisane programy na nową płytkę.

Podtytuły:
♦ Fusy
♦ Przenoszenie programu LEDMulti
♦ Trochę o stałych ich typach i obcinaniu
♦ Przenoszenie programu PCF8591
♦ Podsumowanie

Część 7

Opis zagadnień:
♦ Biblioteka stdio – funkcja printf
♦ Komunikacja z terminalem
Podtytuły:
♦ “Hello world”
♦ Jaki to ma sens (stosowanie biblioteki stdio)
♦ Pamięć programu (funkcje, zaimplementowane w bibliotece stdio, posługujące się pamięcią programu)
♦ Podsumowanie

Część 8

Opis zagadnień:
♦ Biblioteka stdio – korzystamy z niestandardowego wejścia / wyjścia
♦ Struktury
♦ Nazywanie typów
♦ Niekompletna deklaracja struktury
♦ Zaglądamy do kodów źródłowych biblioteki standardowej
♦ Rzutowanie zakresu oraz rzutowanie wskaźników (rzutowanie typu)
♦ Wskaźnik na typ pusty
Podtytuły:
♦ Niestandardowe wejście / wyjście
♦ Głębiej w stdio
♦ Korzystamy z możliwości, jakie daje Open Source
♦ Podsumowanie rozwiązania
♦ Rzutowanie

Część 9

Opis zagadnień:
♦ Wbudowane w WinAVR funkcje opóźnień: _delay_usoraz _delay_ms
♦ Deklaracja typu extern
♦ Sterowanie przebiegiem pętli
♦ Bezpośrednie podawanie kodu znaku w zapisie szesnastkowym oraz ósemkowym w łańcuchu znaków
♦ Opis zagadnień pozostałych:
♦ Wydzielanie ustawień lokalnych
♦ WinAVR 20060125 oraz konsekwencje zastosowania avr-libc 1.4 zamiast 1.2
♦ Zaawansowana obsługa LCD – dynamiczne przydzielanie znaków specjalnych
Podtytuły:
♦ WinAVR 20060125
♦ Zaczynamy nowy projekt
♦ Definicja sprzętu
♦ Początek modułu lcd
♦ Funkcje niskiego poziomu
♦ Funkcja lcd_put
♦ Interfejs
♦ Zmienna przechowująca “ogonki”
♦ Przechowuj oddzielnie ustawienia lokalne
♦ Alokacja znaków specjalnych
♦ Wysyłanie bufora znaków do wyświetlacza
♦ Zakończenie modułu lcd
♦ Test
♦ Uwagi końcowe

Część 10

Opis zagadnień:
♦ Używanie tablic wielowymiarowych
♦ Kwalifikator const
♦ Typ wyliczeniowy
♦ Opis zagadnień pozostałych:
♦ Obsługa wielu języków
Podtytuły:
♦ Projekt multilang
♦ Zarządzanie językami
♦ Dostosowanie modułu lcd
♦ Test
♦ Ułatwienie tworzenia tablicy wskaźników
♦ Inne modyfikacje
♦ Podsumowanie

Część 11

Opis zagadnień:
♦ Instrukcja switch-case
♦ Bezpośrednie skoki do etykiet
♦ Unia
♦ Opis zagadnień pozostałych:
♦ Przewijane menu
♦ Obsługa zdarzeń w kolejce komunikatów
♦ Wydzielenie warstwy aplikacji i systemu operacyjnego
Podtytuły:
♦ System i aplikacja
♦ Kolejka komunikatów
♦ Obsługa klawiatury
♦ Timer systemowy
♦ Systemowa funkcja generująca opóźnienie
♦ Test kolejki i klawiatury
♦ Programowe timery oferowane przez system
♦ Korzystanie z menu
♦ Podsumowanie

Część 12

Opis zagadnień:
♦ Podstawowe informacje o sekcjach pamięci z jakich korzysta GCC
♦ Umieszczanie funkcji oraz zmiennych w wybranych sekcjach
♦ Tworzenie bootloadera
♦ Wsparcie bootloadera przez procesory AVR
♦ Wsparcie bootloadera przez avr-libc
♦ Deklarowanie stałych dla preprocesora z poziomu pliku makefile
♦ Pisanie funkcji w pełnym asemblerze
Podtytuły:
♦ Bootloader a procesory AVR
♦ Programowanie pamięci FLASH
♦ Pisanie bootloadera
♦ Sekcje pamięci
♦ Przygotowanie do pisania aplikacji
♦ Dwa podejścia do tworzenia bootloadera
♦ Zanim uruchomimy przerwania
♦ Części wspólne dla naszych bootloaderów
♦ Używanie w kodzie programu stałej BOOTSTART
♦ Wczytywanie oraz wysyłanie strony
♦ Bootloader z wykorzystaniem wsparcia avr-libc 1.4
♦ Pełny asembler
♦ Podsumowanie

Część 13

Opis zagadnień:
♦ Programowanie wyświetlacza graficznego ze sterownikiem PCD8544
♦ Sprzętowy oraz programowy interfejs SPI
Podtytuły:
♦ Sterownik PCD8544 – podstawy
♦ Sterownik PCD8544 – konfiguracja
♦ Przygotowanie sprzętu
♦ Uruchomienie wyświetlacza
♦ Rysowanie obrazka
♦ Pisanie tekstu
♦ Sprzętowy SPI
♦ Próby usunięcia ramki z wyświetlacza
♦ Podsumowanie

Część 14

Opis zagadnień:
♦ Liczby zmiennoprzecinkowe
♦ Biblioteka matematyczna
♦ Liczby stałoprzecinkowe
♦ Tablicowanie funkcji
♦ Tworzenie grafiki 3D
Podtytuły:
♦ Uruchomienie biblioteki obsługi LCD
♦ Rysowanie linii – spróbujmy sami
♦ Optymalizacja linii
♦ litle3D – nasz mały silnik 3D
♦ Wypisywanie aktualnego kąta obrotu
♦ Biblioteka 3D bez operacji zmiennoprzecinkowych
♦ Podsumowanie

Część 15

Opis zagadnień:
♦ Obsługa wyświetlacza kolorowego z telefonu NOKIA3510i
Podtytuły:
♦ Zróbmy to kolorowo: wyświetlacz z telefonu NOKIA3510i
♦ Zestaw komend
♦ Dostęp do pamięci obrazu
♦ Ustawienia domyślne wyświetlacza po zerowaniu
♦ Prosta animacja
♦ Podsumowanie

Część 16

Opis zagadnień:
♦ Obsługa pamięci zewnętrznej
♦ Obsługa pamięci EEPROM
♦ Generowanie ciągów pseudolosowych
♦ Dynamiczne przydzielanie pamięci
♦ Skrypty linkera – podstawy
Podtytuły:
♦ Pamięć zewnętrzna w sekcji .exram
♦ Podpalanie wyświetlacza [Animacja ognia]
♦ Pamięć EEPROM – dodajemy możliwość konfiguracji
♦ Pamięć przydzielana dynamicznie
♦ Program „przeglądarka” [Przesyłanie i oglądanie obrazków]
♦ Moduł imglist
♦ Uruchomienie
♦ Podsumowanie

Część 17

Podtytuły:
♦ Jak samemu dostosować program do nowej wersji narzędzia WinAVR
♦ Pozostały zakres materiału
♦ Funkcja z otwartą listą argumentów
♦ Oszczędzanie energii
♦ Timer watchdog – bezpieczeństwo aplikacji
♦ Jak sprawdzić, czy program prawidłowo reaguje na reset WDT?

Część 18

Podtytuły:
♦ Wykonywanie dalekiego skoku
♦ Debugowanie
♦ Errata
♦ Podsumowanie

Elektronika na święta?
Sprawdź nasze
elektroniczne ozdoby

Oferta zestawów AVT

Filmy instruktażowe

Wydarzenia i nowości