AVR. Praktyczne projekty - Helion

ISBN: 978-83-246-8493-9
stron: 632, Format: ebook
Data wydania: 2013-09-26
Księgarnia: Helion
Cena książki: 64,50 zł (poprzednio: 129,00 zł)
Oszczędzasz: 50% (-64,50 zł)
Programowanie mikrokontrolerów to nic trudnego! Czas siÄ™ o tym przekonać!
- Poznaj mikrokontrolery AVR z rodziny XMEGA
- Naucz się praktycznie programować je w języku C
- ZdobÄ…dź doÅ›wiadczenie w stosowaniu ukÅ‚adów AVR
UkÅ‚ady AVR przebojem wdarÅ‚y siÄ™ na rynek mikrokontrolerów. Szybko zdobyÅ‚y serca hobbystów i profesjonalistów - zdecydowaÅ‚y o tym niska cena, ogromne możliwoÅ›ci i wydajność obliczeniowa oraz prostota używania i dostÄ™pność darmowych narzÄ™dzi, które uÅ‚atwiajÄ… programowanie tych ukÅ‚adów. Szczególnie dużym uznaniem wÅ›ród użytkowników mikrokontrolerów cieszÄ… siÄ™ ukÅ‚ady należące do rodziny XMEGA, jednak do tej pory brak byÅ‚o na polskim rynku publikacji opisujÄ…cych ich architekturÄ™, programowanie i zastosowanie.
LukÄ™ tÄ™ doskonale wypeÅ‚nia książka „AVR. Praktyczne projekty ”, której autor postawiÅ‚ sobie za cel szczegóÅ‚owe omówienie problemów zwiÄ…zanych z programowaniem mikrokontrolerów XMEGA, z uwzglÄ™dnieniem moduÅ‚ów, które nie wystÄ™pujÄ… w ukÅ‚adach należących do innych rodzin AVR. JeÅ›li posiadasz już podstawowe umiejÄ™tnoÅ›ci w zakresie programowania mikrokontrolerów, pozycja ta umożliwi Ci praktyczne rozwiniÄ™cie talentów w tej dziedzinie - samodzielnie zrealizujesz m.in. projekt zegara, analizatora logicznego i wiele innych!
To doskonaÅ‚a pozycja zarówno dla czytelników pierwszej książki Tomasza Francuza „JÄ™zyk C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji”, jak i dla osób, które opanowaÅ‚y podstawy programowania mikrokontrolerów we wÅ‚asnym zakresie.
- Architektura ukÅ‚adów AVR XMEGA
- Warsztat pracy programisty mikrokontrolerów
- Tworzenie projektów i zarzÄ…dzanie nimi
- Sposoby pisania efektywnego kodu
- Korzystanie z różnych typów danych
- Wykonywanie operacji wejścia-wyjścia
- Zarządzanie pamięcią mikrokontrolera
- Sterowanie pracÄ… zegara
- Obsługa przerwań i system zdarzeń
- Używanie timerów i liczników
- Sterowanie urządzeniami zewnętrznymi
- Praktyczne przykÅ‚ady zastosowaÅ„ mikrokontrolerów
Dowiedz siÄ™, co można osiÄ…gnąć za pomocÄ… jÄ™zyka C i ukÅ‚adów AVR!
Przeczytaj kompleksową recenzję książki na portalu Mikrokontrolery.blogspot.com >>
Osoby które kupowały "AVR. Praktyczne projekty", wybierały także:
- Tajemnice sieci 38,68 zł, (11,99 zł -69%)
- Przygoda z elektroniką 96,45 zł, (29,90 zł -69%)
- Arduino. Kurs video. Poziom pierwszy. Podstawowe techniki dla własnych projektów elektronicznych 99,00 zł, (44,55 zł -55%)
- Tajemnice sieci 39,90 zł, (19,95 zł -50%)
- Elektronika bez oporu. Schematy elektroniczne od podstaw 39,90 zł, (19,95 zł -50%)
Spis treści
AVR. Praktyczne projekty eBook -- spis tre¶ci
Rozdzia³ 1. Wstêp, czyli nowi cz³onkowie rodziny AVR (11)
- Przyk³ady do ksi±¿ki (12)
- Mikrokontrolery XMEGA (12)
- Errata (14)
- XMEGA a inne AVR-y (15)
- Kompilator (15)
- Nowe peryferia (16)
Rozdzia³ 2. Jak zacz±æ, czyli instalacja ¶rodowiska (21)
- Xplained jako p³yta rozwojowa (22)
- Instalacja Xplained w systemie (22)
- Instalacja XMEGA z bootloaderem klasy DFU (25)
- Programowanie uk³adów XMEGA (25)
- Wczytywanie firmware za pomoc± FLIP (26)
- Bootloader firmy Atmel (28)
- Podstawowe opcje programu batchisp (28)
- Interfejs JTAG (32)
- Programowanie z wykorzystaniem interfejsu PDI (34)
- Programatory (34)
- AVRISP mkII (35)
- JTAGICE mkII (35)
- JTAGICEIII (36)
- AVROne! (36)
- AVR Dragon (36)
- Programowanie i debugowanie procesorów XMEGA (43)
- Odsprzêganie zasilania (44)
- Instalacja potrzebnego oprogramowania (44)
- Atmel Studio 6 - podstawy (45)
- Programowanie z poziomu AS6 - dlaczego warto korzystaæ z plików w formacie elf (53)
Rozdzia³ 3. Organizacja i zarz±dzanie projektem (55)
- Komentarze (55)
- Nazewnictwo (57)
- Litera³y (59)
- Podzia³ kodu na pliki (61)
- Widoczno¶æ funkcji (66)
- Widoczno¶æ zmiennych (66)
- Podkatalogi (67)
- Podzia³ funkcji (69)
- Zmienne globalne (70)
- Systemy wersjonowania (74)
- Serwer SVN na w³asnym komputerze (75)
- Jak korzystaæ z SVN (78)
- Praca z SVN (81)
- Uwagi koñcowe (84)
- Inne u³atwienia (85)
- Jak pisaæ lepsze programy? (86)
Rozdzia³ 4. Jak tworzyæ lepszy i efektywniejszy kod (89)
- W³±czenie optymalizacji (90)
- D³ugo¶æ typów (91)
- Zmienne globalne i zmienne lokalne (93)
- Modyfikator register (94)
- U¿ycie globalnych rejestrów ogólnego przeznaczenia (97)
- Wykorzystanie innych rejestrów jako GPIOR (99)
- Inicjalizacja zmiennych globalnych (99)
- Po³o¿enie zmiennych w pamiêci (99)
- Optymalizacja pêtli (100)
- Optymalizacja funkcji (101)
- Optymalizacja funkcji main (101)
- Optymalizacja prologów i epilogów funkcji (101)
- Optymalizacja przekazywania parametrów funkcji (102)
- Optymalizacja zwracania wyników funkcji (105)
- Dodatkowe atrybuty funkcji (106)
- Inne (110)
- Eliminacja martwego kodu (111)
- Konstruktory i destruktory (114)
Rozdzia³ 5. Jak uporz±dkowaæ chaos, czyli z³o¿one typy danych i listy (117)
- Tablice (118)
- Struktury (119)
- Deep copy i shallow copy (123)
- Wska¼niki i struktury (126)
- Struktury anonimowe (127)
- Inicjalizacja pól struktury (128)
- Unie (129)
- Pola bitowe (130)
- Struktury a optymalizacja programu (131)
- Listy (135)
- Listy jednokierunkowe (136)
- Listy dwukierunkowe (140)
- Listy XOR (142)
- Bufory (148)
- Bufor pier¶cieniowy (149)
- Kolejki FIFO/LIFO (152)
- Stos (152)
Rozdzia³ 6. Koniec ba³aganu, czyli o nazwach rejestrów i uk³adów peryferyjnych (155)
- Struktury opisuj±ce mikrokontrolery XMEGA (159)
- Nazwy rejestrów (162)
- Nazwy bitów (162)
Rozdzia³ 7. Lepiej i pro¶ciej, czyli porty IO procesora na sterydach (167)
- Piny wej¶ciowe i wyj¶ciowe (168)
- Konwersja poziomów logicznych pomiêdzy uk³adami pracuj±cymi z ró¿nymi napiêciami zasilaj±cymi (171)
- £±czenie wyj¶cia procesora z uk³adem pracuj±cym z napiêciem 5 V (171)
- Zastosowanie aktywnego konwertera (174)
- Konwersja z napiêcia wy¿szego na ni¿sze (174)
- Dzielnik rezystorowy (176)
- U¿ycie do konwersji napiêæ buforów scalonych (177)
- Bufor dwukierunkowy stosowany w magistralach typu open drain (178)
- Kontrola nad portami procesora (181)
- Piny wej¶ciowe i wyj¶ciowe (182)
- Synchronizator (184)
- Konfiguracja sterownika pinu (186)
- Konfiguracja totem-pole (186)
- Konfiguracja Pull up/down (187)
- Konfiguracja bus keeper (188)
- Konfiguracja wired-AND (189)
- Konfiguracja wired-OR (191)
- Odwracanie wyj¶æ IO (192)
- Kontrola szybko¶ci opadania i narastania zboczy (193)
- Kontrola zdarzeñ zwi±zanych z pinem (193)
- Rejestr kontrolny portu (194)
- Atomowa modyfikacja stanu pinów i wsparcie dla RMW (196)
- Alternatywne funkcje pinu (199)
- Porty wirtualne (200)
- Przekazywanie rejestru jako parametru funkcji (202)
- Remapowanie wyj¶æ IO (203)
Rozdzia³ 8. Kontroler NVM - jak prosto i przyjemnie dobraæ siê do pamiêci (205)
- Pamiêæ EEPROM i zwi±zane z ni± operacje (206)
- Dostêp do EEPROM z poziomu AVR-libc (208)
- Dostêp do EEPROM za pomoc± bezpo¶redniego dostêpu do kontrolera NVM (213)
- Techniki wear leveling (219)
- Rozdzielenie kasowania i zapisu pamiêci (221)
- Dostêp do EEPROM z wykorzystaniem tokenów (224)
- EEPROM i awaria zasilania (232)
- Problem atomowo¶ci przy dostêpie do EEPROM (244)
- Zapis do EEPROM z u¿yciem przerwañ (244)
- Zapobieganie uszkodzeniu zawarto¶ci pamiêci EEPROM (246)
- Dostêp do pamiêci FLASH (246)
- Typy danych zwi±zane z pamiêci± FLASH (248)
- Odczyt danych z pamiêci FLASH (250)
- Dostêp do FLASH w kompilatorze avr-gcc 4.7 i wy¿szych - named address spaces (252)
- Wska¼niki wykorzystuj±ce przestrzenie adresowe (254)
- Typy 24-bitowe (258)
Rozdzia³ 9. Potrzebujê wiêcej mocy - s³ów kilka o konfiguracji zegara (259)
- Rejestry kontrolne zegarów (260)
- Konfiguracja zegara (262)
- ¬ród³a zegara (263)
- Odblokowywanie ¼ród³a zegara (270)
- Uk³ad PLL (270)
- DFLL (272)
- Uk³ad monitorowania zegara zewnêtrznego (275)
- Zmiana ¼ród³a zegara i jego czêstotliwo¶ci (277)
- Blokowanie ustawieñ zegara (277)
- Preskalery zegara (278)
- Uwagi (281)
- Kondensatory odsprzêgaj±ce (282)
Rozdzia³ 10. Przerwania i kontroler przerwañ (285)
- Przerwania (285)
- Czym s± przerwania? (285)
- Przerwania maskowalne (286)
- Przerwania niemaskowalne (287)
- ¬ród³a przerwañ (287)
- Konfiguracja i obs³uga przerwañ (288)
- Czas odpowiedzi na ¿±danie przerwania (288)
- Funkcja obs³ugi przerwania (289)
- Wektory przerwañ (290)
- Puste wektory przerwañ (292)
- Puste przerwania (293)
- Wspó³dzielenie kodu przez przerwania (294)
- Atrybut naked i obs³uga przerwañ w asemblerze (295)
- Poziomy przerwañ (297)
- Przerywanie przerwañ (300)
- Priorytety przerwañ (302)
- Priorytet dynamiczny (302)
- Globalna flaga zezwolenia na przerwanie (303)
- Przerwanie niemaskowalne (304)
- Rejestr stanu kontrolera przerwañ (304)
- Modyfikator volatile (305)
- Zmiana kolejno¶ci instrukcji (307)
- Atomowo¶æ dostêpu do danych (308)
- Instrukcje atomowej modyfikacji pamiêci (311)
- Dostêp do wielobajtowych rejestrów IO (314)
- Funkcje reentrant (314)
- Rejestry IO ogólnego przeznaczenia (316)
Rozdzia³ 11. System zdarzeñ (319)
- Rejestr multipleksera kana³u zdarzeñ (320)
- Zaawansowane funkcje kana³u zdarzeñ (322)
- Filtr cyfrowy (322)
- Dekoder kwadraturowy (322)
- Enkoder kwadraturowy z indeksem (331)
- Programowe sterowanie zdarzeniami (332)
- Zdarzenia jako sygna³y steruj±ce uk³adami zewnêtrznymi (333)
- Inne funkcje rejestru (334)
Rozdzia³ 12. Timery i liczniki (337)
- Co to jest licznik? (337)
- ¬ród³a zegara i preskaler (338)
- Typy i funkcje liczników (340)
- Licznik typu 0/1 (341)
- Piny wyj¶ciowe licznika (350)
- Licznik typu 2 (351)
- Timery typu 4/5 (353)
- Buforowanie (354)
- Kontrola nad licznikiem (357)
- Kaskadowe ³±czenie liczników (358)
- Rejestr tymczasowy TEMP (359)
- Wykorzystanie PWM do generowania sygna³ów analogowych (361)
- Przyk³ad - generowanie napiêcia o zmiennej amplitudzie (363)
- Przyk³ad - generowanie dowolnego przebiegu (364)
- PWM i przerwania (369)
- A mo¿e DMA? (371)
- Rozszerzenie zwiêkszaj±ce rozdzielczo¶æ (374)
- Tryb HiRes dla licznika typu 2 (377)
Rozdzia³ 13. Kontroler DMA (379)
- Przesy³anie pamiêæ-pamiêæ (383)
- Odwracanie danych (384)
- Przesy³anie nak³adaj±cych siê bloków pamiêci (385)
- Wype³nianie pamiêci wzorcem (388)
- Przesy³anie pamiêæ-rejestr IO (389)
- Wyzwalacze (392)
- Praca buforowa (395)
- Priorytety kana³ów DMA (396)
- Przerwania DMA (397)
- B³±d transmisji DMA (397)
- Przerwanie koñca transakcji (398)
Rozdzia³ 14. LED-y - co z nich mo¿na wycisn±æ? (399)
- Ta¶my LED-owe (399)
- Trochê o w³a¶ciwo¶ciach oka, czyli RGB w praktyce (403)
- Program steruj±cy (404)
- Wy¶wietlacze LED 7-segmentowe (407)
- Licznik LED (412)
- Matryce LED (416)
- Projekt PCB i zasilanie (421)
- Dobór napiêcia zasilaj±cego matrycê (422)
- Regulacja pr±du diod (423)
- Uk³ad z matryc± dwukolorow± (423)
- Sterowanie matryc± (425)
- PWM inaczej, czyli jak uzyskaæ odcienie kolorów (433)
Rozdzia³ 15. Uk³ady zegarowe w praktyce (437)
- RTC czy... RTC? (438)
- 16-bitowy uk³ad RTC (438)
- Synchronizacja dostêpu do rejestrów RTC (441)
- Rejestry PER i COMP (442)
- RTC w trybie u¶pienia (445)
- 32-bitowy uk³ad RTC (445)
- Generator sygna³u zegarowego (445)
- Rejestry PER i COMP (445)
- Rejestr CNT (446)
- Przyk³adowy program kalendarzowy (446)
- Linuksowy marker czasowy (447)
- Konwersja czasu (447)
- Czas drog± radiow±, czyli DCF77 (451)
- Trochê wiêcej o DCF77 (452)
- Dekodowanie danych (454)
- Modu³ odbiornika DCF77 (454)
- Przyk³ad (455)
- Uk³ad podtrzymywania zasilania (462)
- Dobór ¼ród³a zasilania awaryjnego (463)
- Wykorzystanie baterii (463)
- Superkondensatory (463)
- Akumulatory (464)
- Podtrzymanie zasilania dla ca³ego procesora (465)
- Uk³ad zapasowego zasilania bateryjnego (465)
Rozdzia³ 16. Budujemy zegar z budzikiem, czyli skoñczona maszyna stanów w praktyce (469)
- FSM oparta na switch/case (471)
- FSM oparta na tablicach (474)
- Zegar z alarmem (477)
- Jeszcze o maszynach stanu (489)
Rozdzia³ 17. Komunikacja na ró¿ne sposoby, czyli USART w praktyce (491)
- Elektryczna realizacja interfejsu USART (492)
- Format transmisji danych (494)
- Szybko¶æ transmisji (496)
- Terminal (496)
- Podgl±d transmisji danych (497)
- Wirtualny port szeregowy (499)
- Konfiguracja interfejsu (500)
- Konfiguracja pinów IO (501)
- Konfiguracja formatu ramki danych (502)
- Funkcje dodatkowe interfejsu (502)
- Ustawienie szybko¶ci interfejsu (503)
- Kontrola poprawno¶ci danych (508)
- Transmisja danych (509)
- Realizacja transmisji przez pooling (509)
- Wykorzystanie przerwañ (512)
- Wykorzystanie DMA (517)
- Równoczesny dostêp do USART z wielu "w±tków" (525)
- Dostêp do USART z wykorzystaniem strumieni (527)
- Metoda get (528)
- Metoda put (528)
- Otwieranie strumienia (529)
- Tryb MPCM (530)
Rozdzia³ 18. Wizualizacja danych (535)
- Atmel Data Visualizer (535)
- Format danych (537)
- Struktury wykorzystywane przez ADV (540)
- Ultrad¼wiêkowy pomiar odleg³o¶ci (543)
- Modu³y cyfrowe (544)
- W³asny modu³ (548)
- Budujemy analizator stanów logicznych (550)
- Sprzêt (551)
- Protokó³ komunikacji (553)
- Implementacja protoko³u (555)
- Jak szybko próbkowaæ? (560)
- Klient (564)
- Uwagi praktyczne (566)
Rozdzia³ 19. Wykorzystanie podczerwieni do transmisji danych (569)
- Modulacja IR (570)
- Porozmawiajmy z pilotem TV (572)
- Czê¶æ sprzêtowa, czyli odbiornik IR (572)
- Czê¶æ programowa, czyli standardy kodowania (574)
- Standard NEC i pokrewne (575)
- RC5 i Motorola (581)
- Kod RC5 (587)
- Inne standardy kodowania (592)
- Nadajnik IR (592)
- In¿ynieria odwrotna - dekodujemy sygna³ pilota aparatu Canon (595)
- Transmisja danych (597)
- Budujemy pakiet danych (600)
- Sprzêtowy generator CRC (602)
- CRC liczone programowo (604)
- Transmisja pakietowa (605)
- Uniwersalny pilot (608)
- Interfejs IrDA i IRCOM (613)
Skorowidz (615)