- Obecnie brak na stanie
Andrzej Witkowski
Książka opisuje środowisko programistyczne będące zestawem dostępnych za darmo narzędzi zbudowanym wokół avr-gcc - kompilatora GNU C dla procesorów AVR. Jest ona przeznaczona dla wszystkich, którzy tworzą lub chcą tworzyć napisane w języku C programy dla mikrokontrolerów AVR. W szczególności jest ona skierowana do studentów kierunków elektronicznych i elektrycznych oraz hobbystów budujących urządzenia z mikrokontrolerami AVR. Mogą z niej skorzystać również czytelnicy zawodowo zajmujący się programowaniem mikrokontrolerów oraz ci wszyscy, którzy programując je dotychczas w Asemblerze, chcą rozszerzyć swoje umiejętności.
Spis treści
1. Wstęp
1.1. Podstawowe informacje
1.2. Struktura książki
1.3. Źródła informacji
2. Środowisko programistyczne GNU C
2.1. Wprowadzenie
2.2. Programy składowe środowiska
2.2.1. Pakiet Gnu Binutiis
2.2.2. Pakiet GCC
2.2.3. Biblioteka avr-libc
2.2.4. Program make
2.2.5. Programatory
2.2.6. Narzędzia uruchomieniowe
2.2.7. Asemblery
2.2.8. Programy pomocnicze
2.3. Instalacja
2.3.1. System Windows
2.3.2. System Linux
2.4. Biblioteka avr-libc
2.4.1. Kod startowy
2.4.2. Definicje nazw rejestrów specjalnych i flag bitowych
2.4.3. Biblioteka matematyczna
2.4.4. Standardowa biblioteka C
2.4.5. Makra i funkcje ułatwiające korzystanie z układów peryferyjnych
2.5. Kompilator gcc
2.5.1. Zasada działania
2.5.2. Typy plików
2.5.3. Opcje
2.5.3.1. Opcje kompilatora specyficzne dla procesorów AVR
2.5.3.2. Opcje kontrolujące rodzaj wyniku
2.5.3.3. Opcje ustalające dialekt C
2.5.3.4. Opcje włączające lub wyłączające uwagi i informacje o błędach
2.5.3.5. Opcje dla debuggera
2.5.3.6. Opcje optymalizacji
2.5.3.7. Opcje dotyczące katalogów
2.5.3.8. Opcje ustalające sposób generowania kodu
2.5.3.9. Opcje preprocesora
2.5.3.10. Opcje asemblera
2.5.3.11. Opcje konsolidatora
2.5.4. Atrybuty zmiennych i funkcji
2.6. Program make
2.6.1. Zasada działania
2.6.2. Zależności
2.6.3. Zmienne
2.7. Program AVRDUDE
2.7.1. Opcje linii poleceń
2.7.2. avrdude-gui
3. Język C dla procesorów AVR
3.1. Wprowadzenie
3.2. Operacje na zmiennych i rejestrach specjalnych
3.3. Operacje na zmiennych bitowych
3.4. Zmienne volatile
3.5. Odwołania do różnych rodzajów pamięci
3.5.1. Przestrzenie adresowe
3.5.2. Pamięć EEPROM
3.5.3. Pamięć Flash
3.6. Obsługa przerwań
3.6.1. Deklaracje funkcji obsługi przerwań
3.6.2. Hierarchia przerwań
3.6.3. Korzystnie z tych samych zmiennych w przerwaniach i w programie głównym
3.6.4. Korzystanie w przerwaniach ze zmiennych globalnych
3.7. Modyfikacje kodu startowego
3.8. Asembler
3.8.1. Zasady przydzielenia rejestrów przez kompilator
3.8.2. Asembler as
3.8.2.1. Komentarze
3.8.2.2. Wyrażenia
3.8.2.3. Etykiety
3.8.2.4. Dyrektywy
3.8.2.5. Preprocesor cpp
3.8.2.6. Przykładowy kod w Asemblerze dołączany do C
3.8.3. Wstawki w Asemblerze
3.8.3.1. Instrukcja asm
3.8.3.2. Operandy
3.8.3.3. Przykłady zastosowania
4. Tworzenie programu
4.1. Podstawowe zasady
4.2. Tworzenie i kompilacja projektu
4.2.1. AVR Studio
4.2.2. Generator plików makefile Mfile
4.2.3. Szablon plików makefile z WinAVR
4.3. Przykładowy program
4.4. Kompilacja przykładowego programu
4.4.1. AVR Studio
4.4.2. Linia poleceń
4.5. Pliki projektu
5. Przykłady zastosowań
5.1. Wprowadzenie
5.2. Obsługa klawiatury matrycowej
5.2.1. Opis aplikacji
5.2.2. Implementacja
5.3. Wymiana danych przez interfejs szeregowy
5.3.1. Opis aplikacji
5.3.2. Implementacja
5.4. Alfanumeryczny wyświetlacz LCD
5.4.1. Opis aplikacji
5.4.2. Implementacja
5.5. Obsługa klawiatury w przerwaniach
5.5.1. Opis aplikacji
5.5.2. Implementacja
5.6. Obsługa klawiatury i wyświetlacza LED
5.6.1. Opis aplikacji
5.6.2. Implementacja
5.7. Komunikacja pomiędzy wieloma urządzeniami
5.7.1. Interfejs RS-485
5.7.2. Opis protokołu
5.7.2.1. Formaty ramki danych
5.7.2.2. Obsługa błędów
5.7.3. Sesja komunikacyjna
5.7.4. Implementacja
5.7.4.1. Stałe i zmienne używane w programie
5.7.4.2. Układ nadrzędny
5.7.4.3. Układ podrzędny
5.7.5. Zależności czasowe
5.7.5.1. Odmierzanie przerwy pomiędzy znakami wewnątrz ramki
5.7.5.2. Odmierzanie przerwy pomiędzy ramkami z żądaniem odpowiedzi i danymi,
5.7.5.3. Odmierzanie przerwy pomiędzy ramkami przez układ podrzędny
5.7.6. Wymiana danych
Załącznik
Literatura
Indeks alfabetyczny
Zestaw akumulatorów Panasonic Eneloop R6/AA o pojemności 2000mAh oraz napięciu 1,2V. Zestaw zawiera osiem sztuk sprzedawanych w opakowaniu wielokrotnego użytku. Panasonic BK-3MCCE/8LE
Brak towaru
Zestaw akumulatorów Panasonic Eneloop R03/AAA o pojemności 800mAh oraz napięciu 1,2V. Zestaw zawiera cztery sztuki sprzedawane w opakowaniu wielokrotnego użytku. Panasonic BK-4MCCE/4LE
Brak towaru
Zestaw akumulatorów Panasonic Eneloop R03/AAA o pojemności 800mAh oraz napięciu 1,2V. Zestaw zawiera osiem sztuk sprzedawanych w opakowaniu wielokrotnego użytku. Panasonic BK-4MCCE/8LE
Brak towaru
Uniwersalny pojemnik na akumulatory Panasonic Eneloop R6/AA oraz R03/AAA w kolorze niebieskim. Panasonic BQ-CASEL/1E
Brak towaru
Zestaw akumulatorów Panasonic Eneloop R6/AA o pojemności 2000mAh oraz napięciu 1,2V. Zestaw zawiera dwie sztuki sprzedawane w opakowaniu typu blister. Panasonic BK-3MCCE/2BE
Brak towaru
Zestaw akumulatorów Panasonic Eneloop R6/AA o pojemności 2000mAh oraz napięciu 1,2V. Zestaw zawiera cztery sztuki sprzedawane w opakowaniu typu blister oraz wytrzymały pojemnik (do przechowywania). Panasonic BK-3MCCEC4BE
Brak towaru
Zestaw akumulatorów Panasonic Eneloop R03/AAA o pojemności 800mAh oraz napięciu 1,2V. Zestaw zawiera dwie sztuki sprzedawane w opakowaniu typu blister. Panasonic BK-4MCCE/2BE
Brak towaru
Zestaw akumulatorów Panasonic R6/AA o pojemności 2700mAh oraz napięciu 1,2V. Zestaw zawiera cztery sztuki sprzedawane w opakowaniu typu blister. Panasonic BK-3HGAE/4BE
Brak towaru
Mikroprocesorowa ładowarka BQ-CC55 przeznaczona do szybkiego ładowania akumulatorków NiMH typu R6/AA lub R03/AAA. Posiada 4 osobne kanały ładowania co pozwala na jednoczesne ładowanie 1, 2, 3 lub 4 akumulatorów. Panasonic BQ-CC55E
Brak towaru
Gotowy zestaw, który umożliwia budowę domowego centrum rozrywki (media center). Oparty o minikomputer ODROID N2 z 2GB pamięci RAM. ODROID-N2 2GB CoreELEC Edition
Brak towaru
Moduł kamery 1 Mpx z sensorem OV9281 współpracujący z wszystkimi wersjami Raspberry Pi. Maksymalna rozdzielczość video wynosi 1280×800 pikseli. ArduCAM B0162
Brak towaru
Moduł kamery 13Mpx z sensorem Sony IMX135 współpracujący z wszystkimi wersjami Raspberry Pi. Maksymalna rozdzielczość video wynosi 4192×3120 pikseli. ArduCam B0163
Brak towaru
Moduł kamery 16 Mpx z sensorem IMX298 współpracujący z wszystkimi wersjami Raspberry Pi. Maksymalna rozdzielczość wideo wynosi 4672×3496 pikseli. ArduCAM B0174
Brak towaru
Nakładka przeznaczona dla minikomputerów Raspberry Pi 3B+ oraz Raspberry Pi 4B. HAT umożliwia bezpośrednie zasilanie minikomputera z portu Ethernet. Moduł zasilany jest napięciem 37 do 57 V, dostarcza zasilanie 5V oraz 3A. ArduCam U6102
Brak towaru
Wyświetlacz LCD 5" z pojemnościowym ekranem dotykowym, rozdzielczość 800x480 pikseli. Posiada wyjście HDMI do transmisji obrazu oraz USB do obsług panelu dotykowego. ArduCAM U6103
Brak towaru
Obudowa do samodzielnego montażu przeznaczona do komputera Odroid H2. Pozwala w wygodny sposób zamocować komputer Odroid H2 oraz nawet 2 dyski SATA 3.5”. ODROID-H2 Case Type 1
Brak towaru
Andrzej Witkowski