- 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 z modułem radaru dopplerowskiego oraz płytką XIAO ESP32C3 przeznaczony do precyzyjnego wykrywania obecności człowieka. Umożliwia podłączenie dodatkowych czujników Grove (analogowych lub z interfejsem I2C) i rozszerzenie funkcjonalności. Seeed Studio 110061541
Brak towaru
Sonda różnicowa Micsig z serii DP oparta na zaawansowanej technologii SigOFIT. Oferuje pasmo częstotliwości 150 MHz oraz możliwość pomiarów napięcia do 700 V. Wykorzystuje popularne złącze BNC i jest zasilana przez złącze USB typu C. Micsig DP701
Brak towaru
Sonda różnicowa Micsig z serii DP oparta na zaawansowanej technologii SigOFIT. Oferuje pasmo częstotliwości 150 MHz oraz możliwość pomiarów napięcia do 1500 V. Wykorzystuje popularne złącze BNC i jest zasilana przez złącze USB typu C. Micsig DP1501
Brak towaru
Cyfrowy oscyloskop wyposażony w wyświetlacz LCD TFT o przekątnej 7". Ma cztery kanały pomiarowe z pasmem 100 MHz, szybkością próbkowania 1 GSa/s oraz buforem pamięci 14 Mpkt. Siglent SDS1104X-E
Brak towaru
Zasilacz USB typu C PD o mocy 27 W. Dedykowany jest m.in. do minikomputerów Raspberry Pi 5. Ma wtyk europejski oraz obsługuje USB Power Delivery 5,1V/5A, 9V/3A, 12V/2,25A, 15V/1,8A. Waveshare PSU-27W-USB-C-EU
Brak towaru
Multimetr laboratoryjny idealny do zastosowań laboratoryjnych, przemysłowych oraz naukowych, gdzie wymagana jest precyzja i duża różnorodność dostępnych funkcji pomiarowych. Oferuje rozdzielczość 5 i 1/2 cyfry i może dokładnie mierzyć wartości z wysoką precyzją DCV na poziomie 150 ppm. Oferuje szeroki zakres pomiarowy napięcia stałego i przemiennego, natężenia prądu stałego i przemiennego, pojemność, pomiar częstotliwości, temperatury, test diody, pomiar okresu oraz pomiar rezystancji metodą 2 i 4-przewodową. Siglent SDM3055
Brak towaru
Cyfrowy oscyloskop wyposażony w wyświetlacz LCD TFT o przekątnej 7". Ma cztery kanały pomiarowe z pasmem 100 MHz, szybkością próbkowania 1 GSa/s oraz buforem pamięci 14 Mpts. Siglent SDS1104X-U
Brak towaru
Siglent SDG2042X to wysokiej klasy dwukanałowy generator funkcji, który łączy w sobie zaawansowaną technologię i prostotę użytkowania. Dzięki szerokiemu zakresowi funkcji, w tym TrueArb i EasyPulse, oraz precyzyjnemu przetwarzaniu sygnałów, jest idealnym narzędziem dla inżynierów, techników i naukowców, którzy potrzebują niezawodnego urządzenia do generowania i analizy sygnałów w różnych aplikacjach. Siglent SDG2042X
Brak towaru
Zaawansowany generator funkcyjny z maksymalną częstotliwością wyjściową 30 MHz i dwoma kanałami wyjściowymi to niezastąpione narzędzie dla inżynierów i techników. Z częstotliwością próbkowania 150 MSa/s, pamięcią 16kpts oraz rozdzielczością pionową 16 bitów, urządzenie zapewnia wysoką precyzję i niezawodność. Wyposażony w interfejsy USB i LAN oraz opcjonalny GPIB, umożliwia łatwą integrację z systemami pomiarowymi i automatyzację zadań. Siglent SDG1032X
Brak towaru
ToolkitRC Q6AC to wszechstronna ładowarka modelarska, obsługująca do czterech akumulatorów jednocześnie, kompatybilna z typami ogniw LiPo, LiFe, Li-Ion, NiMH oraz Pb. Zapewnia moc do 400W przy zasilaniu sieciowym (AC) oraz do 1000W przy zasilaniu zewnętrznym (DC), a także oferuje szybkie ładowanie przez porty USB-C PD (65W) i USB-A Fast Charge (18W)
Brak towaru
Konwerter USB-UART z czterema izolowanymi portami UART z wbudowaną izolacją o wartości 1,5kV/3kV. Gwarantuje prędkości transmisji danych do 12 Mbps i możliwość pracy z systemami napięć 1,8 V lub 3,3 V po stronie UART. Jest wyposażony w złącze USB typu C i zdolny do pracy w szerokim zakresie temperatur od -40°C do +55°C. Electronic Prototypes EPED001A-10-STD
Brak towaru
Minikomputer NanoPi R6S zaprojektowany przez FriendlyElec. Jest wyposażony w procesor Rockchip RK3588S, 8 GB pamięci LPDDR4x RAM i pamięć Flash eMMC 32 GB. Wspiera obsługę kart microSD i współpracuje z systemami operacyjnymi takimi jak FriendlyWrt, Android, Debian, Ubuntu itp. FriendlyELEC NanoPi R6S
Brak towaru
Minikomputer NanoPi R6S zaprojektowany przez FriendlyElec. Jest wyposażony w procesor Rockchip RK3588S, 8 GB pamięci LPDDR4x RAM i pamięć Flash eMMC 32 GB. Wspiera obsługę kart microSD i współpracuje z systemami operacyjnymi takimi jak FriendlyWrt, Android, Debian, Ubuntu itp. FriendlyELEC NanoPi R6S
Brak towaru
Minikomputer NanoPi R5C zaprojektowany przez FriendlyElec. Jest wyposażony w procesor Rockchip RK3568B2, 4 GB pamięci LPDDR4x RAM i pamięć eMMC 32 GB. Wspiera obsługę kart microSD i współpracuje z systemami operacyjnymi takimi jak FriendlyWrt, Android, Debian. FriendlyELEC NanoPi R5C
Brak towaru
Minikomputer NanoPi R5C zaprojektowany przez FriendlyElec. Jest wyposażony w procesor Rockchip RK3568B2, moduł WiFi, 4 GB pamięci LPDDR4x RAM i pamięć eMMC 32 GB. Wspiera obsługę kart microSD i współpracuje z systemami operacyjnymi takimi jak FriendlyWrt, Android, Debian. FriendlyELEC NanoPi R5C
Brak towaru
Minikomputer NanoPi R5C zaprojektowany przez FriendlyElec. Jest wyposażony w procesor Rockchip RK3568B2, moduł WiFi, 2 GB pamięci LPDDR4x RAM i pamięć eMMC 32 GB. Wspiera obsługę kart microSD i współpracuje z systemami operacyjnymi takimi jak FriendlyWrt, Android, Debian. FriendlyELEC NanoPi R5C
Brak towaru
Andrzej Witkowski