• Produkt wycofany

Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji - Tomasz Francuz

Indeks: KSZ-02060

Wydawnictwo: Helion. Książka jest jedną z niewielu pozycji w języku polskim, która opisuje zastosowanie jezyka C do programowania mikrokontrolerów AVR.

Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji - Tomasz Francuz
88,00 zł
83,81 zł netto
Zapłać później
Niedostępny
Produkt wycofany
Producent: Helion

 

Uwaga!

Książką została zastąpiona nowym wydaniem.

 

 

Opis produktu: Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji - Tomasz Francuz

Książka jest jedną z niewielu pozycji w języku polskim, która opisuje wykorzystanie jezyka C do programowania mikrokontrolerów AVR. Czytelnik od podstaw dowiaduje się jakie są różnice pomiędzy programowaniem w języku C komputerów klasy PC a mikrokontrolerów. Poznaje tajniki programowania peryferii dostępnych w układach AVR. Zapoznaje się także z biblioteką standardową oraz jej rozszerzeniem (AVR-libc)

 

Kolejne rozdziały przybliżają bardziej zaawansowane techniki programowania, które opierają się na obsłudze bootloadera, zabezpieczaniu i szyfrowaniu aplikacji, czy też realizacji powszechnie znanych protokołów wymiany danych pomiędzy komputerami i urządzeniami opartymi na mikrokontrolerach. W ostatniej części książki czytelnik może przeczytać o specyfice tworzenia aplikacji oraz wyszukiwaniu i usuwania błędów w programach.

 

Lektura w przejrzysty sposób opisuje takie zagadnienia jak:

  • Warsztat pracy programisty AVR
  • Wprowadzenie do języka C dla AVR
  • Budowa programu i jego części składowe
  • Korzystanie z zasobów sprzętowych mikrokontrolera
  • Korzystanie z rejestrów i pamięci
  • Zastosowania przetwornika ADC
  • Obsługa wyświetlaczy LCD
  • Korzystanie z interfejsów komunikacyjnych
  • Zapewnianie bezpieczeństwa kodu

 

W naszym sklepie znajdziesz mikrokontrolery AVR, moduły oraz programatory.

 

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

 
 

Spis treści

 

Wstęp (11)

 

  • Kody przykładów (12)
  • Schematy (12)
  • Wymagane części (12)

 

Rozdział 1. Instalacja środowiska i potrzebnych narzędzi (15)

  • Instalacja WinAVR (16)
  • Instalacja AVR Studio (17)
  • Systemy GNU/Linux (18)
  • AVR Studio (19)
    • Pierwsza aplikacja (21)
    • Dodawanie plików do projektu (25)
  • Programy narzędziowe (27)
    • Linker (27)
    • Program avr-size (31)
    • Program avr-nm (32)
    • Program avr-objcopy (33)
    • Program make (36)
    • Pliki wynikowe (43)
  • Biblioteki (46)
    • Projekt biblioteki (47)
    • Tworzenie biblioteki (48)
    • Dołączanie biblioteki do programu (49)
    • Funkcje "przestarzałe" (50)
    • Nadpisywanie funkcji bibliotecznych (50)
    • Usuwanie niepotrzebnych funkcji i danych (51)

 

Rozdział 2. Programowanie mikrokontrolera (53)

  • Podłączenie - uwagi ogólne (53)
    • Problemy (55)
  • Programatory ISP (55)
    • Budowa programatora (56)
    • Programator USBASP (59)
    • Kilka procesorów w jednym układzie (59)
  • Programatory JTAG (60)
    • Programator JTAGICE (61)
    • Programator JTAGICE mkII (62)
    • Kilka procesorów w jednym układzie (62)
    • AVR Dragon (63)
  • Programatory HW i równoległe (63)
  • Tryb TPI (64)
  • Programowanie procesora w AVR Studio (64)
  • Programowanie przy pomocy narzędzi dostarczonych przez firmę Atmel (65)
  • Program AVRDUDE (67)
  • Program PonyProg (70)
  • Fusebity i lockbity w AVR-libc (70)
    • Lockbity (71)
    • Fusebity (71)
  • Sygnatura (74)
  • Lockbity w AVR-libc (74)
  • Fusebity w AVR-libc (75)

 

Rozdział 3. Podstawy języka C na AVR (77)

  • Arytmetyka (77)
    • Proste typy danych (77)
    • Arytmetyka stałopozycyjna (81)
    • Arytmetyka zmiennopozycyjna (87)
  • Operacje bitowe (95)
    • Reprezentacja binarna liczb (95)
    • Operacja iloczynu bitowego (96)
    • Operacja sumy bitowej (97)
    • Operacja sumy wyłączającej (98)
    • Operacja negacji bitowej (99)
    • Operacje przesunięć bitowych (100)
  • Zasięg zmiennych (100)
    • Zmienne globalne (101)
    • Zmienne lokalne (102)
    • Modyfikator const (103)
    • Wskaźniki (104)
    • Tablice (109)
  • Funkcje (112)
    • Przekazywanie parametrów przez wartość i referencję (114)
    • Wywołanie funkcji (114)
    • Rekurencyjne wywołania funkcji (115)
  • Słowa kluczowe (116)
    • Operatory (116)
    • Instrukcje sterujące (120)
  • Preprocesor (123)
    • Dyrektywa #include (124)
    • Dyrektywy kompilacji warunkowej (124)
    • Dyrektywa #define (126)
  • Pliki nagłówkowe i źródłowe (127)
    • Definicja a deklaracja (128)
    • Słowo kluczowe static (129)
    • Słowo kluczowe extern (130)
    • Dyrektywa inline (132)
    • Modyfikator register (136)

 

Rozdział 4. Sekcje programu (141)

  • Sekcje danych (142)
    • Sekcja .text (142)
    • Sekcja .data (142)
    • Sekcja .bss (143)
    • Sekcja .eeprom (143)
  • Sekcje zawierające kod programu (144)
    • Podsekcje .init[0-9] (144)
    • Podsekcje .fini[0-9] (145)
  • Sekcje specjalne (146)
  • Sekcje tworzone przez programistę (146)
  • Umieszczanie sekcji pod wskazanym adresem (147)

 

Rozdział 5. Kontrola rdzenia i zarządzanie poborem energii (149)

  • Źródła sygnału RESET (149)
    • Power-on Reset (150)
    • Zewnętrzny sygnał RESET (151)
    • Brown-out Detector (151)
    • Układ Watchdog (152)
  • Zarządzanie poborem energii (156)
    • Usypianie procesora (157)
    • Wyłączanie układu BOD (157)
    • Wyłączanie podsystemów procesora (158)
    • Preskaler zegara (159)
    • Inne sposoby minimalizowania poboru energii (160)

 

Rozdział 6. Dynamiczna alokacja pamięci (163)

  • Alokacja pamięci w bibliotece AVR-libc (164)
    • Funkcja malloc (166)
    • Funkcja calloc (166)
    • Funkcja realloc (166)
    • Funkcja free (168)
  • Wycieki pamięci i błędne użycie pamięci alokowanej dynamicznie (169)
  • Jak działa alokator (171)
  • Wykrywanie kolizji sterty i stosu (172)
    • Metoda I - własne funkcje alokujące pamięć (173)
    • Metoda II - sprawdzanie ilości dostępnej pamięci (173)
    • Metoda III - marker (173)
    • Metoda IV - wzór w pamięci (173)
    • Metoda V - wykorzystanie interfejsu JTAG (176)

 

Rozdział 7. Wbudowana pamięć EEPROM (177)

  • Zapobieganie uszkodzeniu zawartości pamięci EEPROM (178)
  • Kontrola odczytu i zapisu do pamięci EEPROM (179)
    • Odczyt zawartości komórki pamięci (180)
    • Zapis do komórki pamięci (180)
  • Dostęp do EEPROM z poziomu AVR-libc (181)
    • Deklaracje danych w pamięci EEPROM (182)
    • Funkcje realizujące dostęp do pamięci EEPROM (183)
    • Inne funkcje operujące na EEPROM (185)
  • Techniki wear leveling (186)

 

Rozdział 8. Dostęp do pamięci FLASH (189)

  • Typy danych związane z pamięcią FLASH (190)
  • Odczyt danych z pamięci FLASH (191)
  • Dostęp do pamięci FLASH ᡸ kB (192)

 

Rozdział 9. Interfejs XMEM (193)

  • Wykorzystanie zewnętrznej pamięci SRAM w programie (197)
    • Konfiguracja I - w pamięci zewnętrznej jest tylko sekcja specjalna (198)
    • Konfiguracja II - wszystkie sekcje w pamięci zewnętrznej, stos w pamięci wewnętrznej (199)
    • Konfiguracja III - w pamięci zewnętrznej umieszczona jest tylko sterta (201)
    • Konfiguracja IV - w pamięci zewnętrznej sterta i segment zdefiniowany przez programistę (202)
    • Konfiguracja V - w pamięci zewnętrznej znajduje się stos (208)
    • Pamięć ROM jako pamięć zewnętrzna (208)

 

Rozdział 10. Dostęp do 16-bitowych rejestrów IO (211)

  • Dostęp do 16-bitowego rejestru ADC (211)
  • Dostęp do 16-bitowych rejestrów timerów (213)

 

Rozdział 11. Opóźnienia (217)

 

Rozdział 12. Dostęp do portów IO procesora (221)

  • Konfiguracja pinu IO (221)
  • Manipulacje stanem pinów IO (225)
    • Zmiana stanu portu na przeciwny (225)
    • Ustawianie linii IO (226)
    • Zerowanie linii IO (226)
    • Makrodefinicja _BV() (227)
    • Użycie pól bitowych (227)
  • Synchronizator (228)
  • Przykłady praktyczne (230)
    • Sterowanie wyświetlaczem 7-segmentowym (230)
    • Podłączenie przycisków (232)
    • Enkoder obrotowy (237)
    • Klawiatura matrycowa (242)

 

Rozdział 13. Rejestry IO ogólnego przeznaczenia (245)

  • Wykorzystanie innych rejestrów jako GPIOR (246)

 

Rozdział 14. Przerwania (249)

  • Obsługa przerwań (251)
    • sei()/cli() (254)
    • Atrybut naked i obsługa przerwań w asemblerze (254)
    • Modyfikator volatile (257)
    • Atomowość dostępu do danych (263)
    • Funkcje reentrant (266)
  • Przykłady praktyczne (268)
    • Wyświetlanie multipleksowane (268)
    • Wyświetlanie multipleksowane z regulacją jasności wyświetlacza (272)
    • Obsługa przycisków (276)
    • Obsługa enkodera (279)
    • Klawiatura matrycowa (280)

 

Rozdział 15. Przetwornik analogowo-cyfrowy (283)

  • Wybór napięcia referencyjnego (284)
  • Multiplekser (285)
  • Przetwornik ADC (285)
    • Tryb pojedynczej konwersji (286)
    • Tryb ciągłej konwersji (287)
  • Wejścia pojedyncze i różnicowe (287)
  • Wynik (288)
  • Wyzwalacze (288)
  • Blokowanie wejść cyfrowych (289)
  • Przerwania ADC (289)
  • Precyzyjne pomiary przy pomocy ADC (290)
  • Nadpróbkowanie (291)
    • Uśrednianie (292)
    • Decymacja i interpolacja (292)
  • Przykłady (292)
    • Termometr analogowy LM35 (293)
    • Klawisze (295)

 

Rozdział 16. Komparator analogowy (301)

  • Funkcje dodatkowe (302)
    • Blokowanie pinów (302)
    • Wyzwalanie zdarzeń timera (302)
    • Wybór wejścia komparatora (302)
    • Wyzwalanie przetwornika ADC (303)

 

Rozdział 17. Timery (305)

  • Sygnał taktujący (306)
    • Wewnętrzny sygnał taktujący (306)
    • Zewnętrzny sygnał taktujący (308)
  • Licznik (308)
  • Układ porównywania danych (309)
    • Wpływ na piny IO (309)
  • Moduł przechwytywania zdarzeń zewnętrznych (310)
    • Eliminacja szumów (311)
    • Komparator jako wyzwalacz zdarzenia ICP (311)
  • Tryby pracy timera (312)
    • Tryb prosty (312)
    • Tryb CTC (315)
    • Tryby PWM (316)
    • Układ ochronny (321)
    • Modulator sygnału wyjściowego (322)
  • Miernik częstotliwości i wypełnienia (323)
  • Realizacja RTC przy pomocy timera (326)
    • Realizacja sprzętowa (327)
    • Realizacja programowa (328)

 

Rozdział 18. Obsługa wyświetlaczy LCD (331)

  • Obsługa wyświetlaczy alfanumerycznych (332)
    • Funkcje biblioteczne (337)
    • Definiowanie własnych znaków (342)
    • Przykład - menu (345)
  • Obsługa wyświetlaczy graficznych (354)

 

Rozdział 19. Interfejs USART (367)

  • Interfejsy szeregowe (367)
  • Interfejs USART (368)
    • Interfejs USART mikrokontrolera AVR (371)
  • Przykłady (375)
    • Połączenie mikrokontroler - komputer PC (375)
    • RS485 (383)

 

Rozdział 20. Interfejs SPI (391)

  • Inicjalizacja interfejsu (394)
    • Ustawienie pinów IO (395)
    • Zegar taktujący (396)
    • Procesor w trybie Master SPI (396)
    • Procesor w trybie slave SPI (397)
  • Przykłady (397)
    • Połączenie AVR-AVR (397)
    • Połączenie AVR - rejestr szeregowy (403)
  • Interfejs USART w trybie SPI (408)
    • Taktowanie magistrali SPI (409)
    • Tryb pracy SPI (409)
    • Format ramki danych (409)
    • Konfiguracja interfejsu (410)

 

Rozdział 21. Interfejs TWI (413)

  • Tryb multimaster (416)
  • Inicjalizacja interfejsu (417)
  • Procesor w trybie I2C master (417)
    • Bity START i STOP (417)
    • Podstawowe funkcje do współpracy z I2C (418)
    • Współpraca z zewnętrzną pamięcią EEPROM (422)
    • Współpraca z zewnętrzną pamięcią FRAM (427)
    • Umieszczanie zmiennych w zewnętrznej pamięci EEPROM (427)
    • Współpraca z zegarem RTC (431)
    • Obsługa ekspandera IO PCF8574 (436)
  • Procesor w trybie I2C slave (437)
    • Przykład (440)

 

Rozdział 22. Interfejs USI (447)

  • 4-bitowy licznik i zegar (447)
  • Przerwania USI (448)
  • Zmiana pozycji pinów (449)
  • Wykorzystanie interfejsu USI w trybie SPI (449)
    • Tryb SPI master (451)
    • Tryb SPI slave (452)

 

Rozdział 23. Interfejs USB (453)

  • Zasilanie (454)
  • Sygnały danych (455)
  • VID i PID (456)
  • Interfejs USB realizowany przy pomocy konwertera (458)
  • Interfejs USB realizowany programowo (459)
    • Połączenie elektryczne (460)
    • Dostęp na PC (460)
    • Programowy interfejs USB na AVR (461)
  • Sprzętowy interfejs USB (464)

 

Rozdział 24. Interfejs 1-wire (465)

  • Realizacja master 1-wire na AVR (469)
    • Realizacja master 1-wire przy pomocy pinów IO (469)
    • Realizacja master 1-wire przy pomocy interfejsu USART (472)
    • Wysokopoziomowe funkcje obsługi 1-wire (477)
  • Termometr cyfrowy DS1820 (480)

 

Rozdział 25. Bootloader (483)

  • Pamięć NRWW i RWW (483)
  • Bity konfiguracyjne bootloadera (485)
    • Konfiguracja lockbitów z poziomu aplikacji (486)
  • Programowanie pamięci FLASH (487)
  • Wykorzystanie przerwań w kodzie bootloadera (489)
    • Usuwanie tablicy wektorów przerwań (490)
    • Skrócenie tablicy wektorów przerwań (491)
  • Start bootloadera (496)
    • Wykorzystanie dodatkowego przycisku/zworki (496)
    • Wykorzystanie markerów w pamięci EEPROM (497)
    • Oczekiwanie na specjalny znak w wybranym kanale komunikacji (498)
    • Start aplikacji (499)
  • Współdzielenie kodu aplikacji i bootloadera (499)
    • Wywoływanie funkcji bootloadera w procesorach ATMega256x (501)
    • Wywoływanie funkcji obsługi przerwań zawartych w kodzie bootloadera (505)
    • Współdzielenie zmiennych pomiędzy aplikacją a bootloaderem (505)
  • Mikrokontrolery AVR z wbudowanym bootloaderem (507)

 

Rozdział 26. Kontrola integralności programu (509)

  • Suma kontrolna (509)
  • CRC (511)
  • Automatyczne generowanie CRC (514)

 

Rozdział 27. Bezpieczeństwo kodu (517)

  • Metody łamania zabezpieczeń (517)
  • Bezpieczne uaktualnianie aplikacji (518)
  • Nota AVR231 - AES Bootloader (519)
    • Ustawienie bitów konfiguracyjnych (524)
    • Przygotowanie aplikacji (526)
    • Wczytywanie uaktualnienia (527)

 

Rozdział 28. Łączenie kodu w C i asemblerze (529)

  • Słowo kluczowe asm (530)
    • Typy operandów (531)
    • Dostęp do portów IO (533)
    • Dostęp do danych wielobajtowych (533)
    • Dostęp do wskaźników (534)
    • Lista modyfikowanych rejestrów (535)
    • Wielokrotne użycie wstawki asemblerowej (535)
  • Pliki .S (536)
    • Wykorzystanie rejestrów w asemblerze (537)
    • Przykłady (541)

 

Rozdział 29. Optymalizacja i debugowanie programu (543)

  • Optymalizacja programu (543)
    • Opcje kompilatora związane z optymalizacją (545)
    • Atrybuty optymalizacji (548)
  • Debugowanie programu (551)
    • Rozpoczęcie sesji debugera (553)
    • Zaawansowane sterowanie przebiegiem wykonywanej aplikacji (556)

 

Skorowidz (559)

 

Książka - Autor Tomasz Francuz
Książka - ISBN 978-83-246-3064-6
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: