• Produkt wycofany

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
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!

Kraj pochodzenia: Polska

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

Produkty z tej samej kategorii: