• EOL

AVR. Praktyczne projekty - Tomasz Francuz

Indeks: KSZ-05001

Wydawnictwo: Helion. Książka opisuje projekty wykonane z wykorzystaniem mikrokontrolerów z rodziny AVR. Autor szczególnie skupia się na architekturze, programowaniu i zastosowaniu układów z serii XMEGA, wypełniając tym samym lukę rynkową w tej tematyce.

AVR. Praktyczne projekty - Tomasz Francuz
89,00 zł
84,76 zł netto
Zapłać później
Powiadom o dostępności
Niedostępny
Produkt wycofany
Producent: Helion

 

Uwaga!

Sprzedaż produktu została zakończona. Sprawdź inne książki w tej kategorii.

Opis

Programowanie mikrokontrolerów to nic trudnego. Czas się o tym przekonać! Ta książka pomoże Ci:

  • Poznać mikrokontrolery AVR z najnowszej rodziny ATXMega
  • Nauczyć się pisać praktyczne programu w języku C
  • Zebrać doświadczenie z pracy z  układami AVR firmy ATmel
 
Mikrokontrolery z rodziny AVR są chętnie wykorzystywane zarówno przez hobbystów i profesjonalnych programistów. Ich główną zaletą jest prosta obsługa i niska cena przy stosunkowo dużej wydajności obliczeniowej. Szczególnie popularne są najnowsze procesory ATXMega. Książka jest jedną z pierwszych na rynku, która opisuje ich architekturę, zastosowanie oraz sposób programowania. Autor postawił sobie za cel przybliżenie czytelnikom te nowe, wydajne układy z serii XMEGA.
 
Książka to doskonała pozycja zarówno dla czytelników pierwszej części 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.
 
W naszej ofercie również moduł wyposażony w mikrokontroler ATXmega128A3U-AU z kursem programowania dostępnym on-line.

 

Uwaga!

Kupując książkę Tomasza Francuza AVR Praktyczne projekty otrzymujesz kupon rabatowy o wartość 5% na zakup modułu X3-DIL64.

 

W celu skorzystania z promocji należy w jednym zamówieniu zakupić moduł X3-DIL64 oraz książkę AVR Praktyczne projekty następnie podać w koszyku kod rabatowy: XMEGA.

 

 

 

Przykładowe programy opisane w książce dostępne do pobrania. Fragment książki do przeczytania on-line.

 

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)

Książka - Autor Tomasz Francuz
Książka - ISBN 78-83-246-7877-8
Książka - Oprawa miękka
Książka - Wydawnictwo Helion
Szerokość opakowania 0.001 cm
Wysokość opakowania 0.001 cm
Głębokość opakowania 0.001 cm
Masa opakowania 0.001 kg

Jako pierwszy zadaj pytanie dotyczące tego produktu!

Klienci którzy zakupili ten produkt kupili również:

Produkty z tej samej kategorii: