Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji. Wydanie II



Podobne dokumenty
Rozdział 1. Wstęp, czyli nowi członkowie rodziny AVR (11)

2. Architektura mikrokontrolerów PIC16F8x... 13

Wstęp Architektura... 13

MIKROKONTROLERY AVR JĘZYK C WYDAWNICTWO ATNEL PODSTAWY PROGRAMOWANIA. Miros aw Kardaś. Szczecin Mojej Żonie Kasi

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Szkolenia specjalistyczne

1.2. Architektura rdzenia ARM Cortex-M3...16

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Mikrokontroler AVR ATmega32 - wykład 9

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Wbudowane układy peryferyjne cz. 1 Wykład 7

1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15

Arduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści

Mikrokontrolery AVR i ARM : sterowanie wyświetlaczami LCD / Tomasz Francuz. Gliwice, cop Spis treści

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

2. Code Composer Studio v4 zintegrowane środowisko projektowe... 41

WPROWADZENIE Mikrosterownik mikrokontrolery

WYKŁAD 5. Zestaw DSP60EX. Zestaw DSP60EX

Systemy wbudowane. Wprowadzenie. Struktura. Mikrokontrolery AVR. Wprowadzenie do programowania w C

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

E-TRONIX Sterownik Uniwersalny SU 1.2

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

HC541 8-bitowy bufor jednokierunkowy HC245 8-bitowy bufor dwukierunkowy HC244 dwa 4-bitowe bufory jednokierunkowe

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

3. Sygnały zegarowe i ich konfiguracja, mechanizmy bezpieczeństwa... 47

Układy czasowo-licznikowe w systemach mikroprocesorowych

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

Wstęp Podstawy programowania QBASIC Budowa mikroprocesora Zestaw uruchomieniowy Porty wejścia/wyjścia...

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

MIKROKONTROLERY I MIKROPROCESORY

Funkcje sterowania cyfrowego przekształtników (lista nie wyczerpująca)

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Wbudowane układy peryferyjne cz. 3 Wykład 9

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

Tab. 1. Zestawienie najważniejszych parametrów wybranych mikrokontrolerów z rodziny LPC2100, które można zastosować w zestawie ZL3ARM.

Kurs Zaawansowany S7. Spis treści. Dzień 1

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Zastosowania mikrokontrolerów w przemyśle

Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych

ISBN. Copyright by Wydawnictwo BTC Legionowo 2010

ZL5ARM. Zestaw uruchomieniowy dla mikrokontrolerów LPC2119/2129 (rdzeń ARM7TMDI-S) Kompatybilność z zestawem MCB2100 firmy Keil

ZL6ARM Zestaw uruchomieniowy dla mikrokontrolerów LPC213x. Tab. 1. Zestawienie najważniejszych parametrów wybranych mikrokontrolerów z rodziny LPC213x

VamsterL. Opis sterownika. wersja 1.0


Politechnika Białostocka Wydział Elektryczny

Technika Mikroprocesorowa

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Systemy Wbudowane. Arduino, AVR. Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler. Mikrokontroler Platforma Arduino. Arduino IDE: Arduino C:

Charakterystyka mikrokontrolerów

Projektowanie urządzeń mikroprocesorowych cz. 2 Wykład 4

Instytut Teleinformatyki

ZL2ARM easyarm zestaw uruchomieniowy dla mikrokontrolerów LPC2104/5/6 (rdzeń ARM7TDMI-S)

Moduł prototypowy.. Leon Instruments. wersja 1.0

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

System mikroprocesorowy i peryferia. Dariusz Chaberski

2. Budowa układów procesorowych rodziny TMS320C

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

Wbudowane układy komunikacyjne cz. 1 Wykład 10

dokument DOK wersja 1.0

Systemy wbudowane Mikrokontrolery

Wykład Mikroprocesory i kontrolery

Rozdział 2. Programowanie Arduino i kodowanie społecznościowe (29)

Programowanie mikrokontrolerów. 8 listopada 2007

ZL2ARM easyarm zestaw uruchomieniowy dla mikrokontrolerów LPC2104/5/6 (rdzeń ARM7TDMI-S)

ZL16AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168

High Speed USB 2.0 Development Board

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

Opis efektów kształcenia dla modułu zajęć

Programowanie mikrokontrolerów AVR

Podstawy systemów mikroprocesorowych

Rok akademicki: 2013/2014 Kod: EEL s Punkty ECTS: 2. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Instrukcja obsługi programatora AVR Prog USB v2

Instrukcja obsługi programatora AVR Prog USB v2

Mikrokontroler ATmega32. Język symboliczny

Instrukcja obsługi programatora AVR Prog USB v2

MCAR Robot mobilny z procesorem AVR Atmega32

Systemy wbudowane. Paweł Pełczyński

Mikroprocesory i Mikrosterowniki

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów AVR

ZL29ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

Metody obsługi zdarzeń

Kurs SIMATIC S7-300/400 i TIA Portal - Zaawansowany. Spis treści. Dzień 1

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

Programowanie mikrokontrolerów AVR z rodziny ATmega.

1.1. Wymogi bezpieczeństwa Pomoc techniczna TIA Portal V13 instalacja i konfiguracja pakietu...18

Instrukcja obsługi programatora AVR Prog USB v2

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

Transkrypt:

Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji. Wydanie II Wstęp do wydania drugiego (13) Wstęp (15) Kody przykładów (16) Schematy (16) Wymagane części (16) Wsparcie (18) Rozdział 1. Jak zacząć, czyli instalacja środowiska (19) Atmel Studio 6 - podstawy (20) o Rozpoczynamy pracę - nowy projekt (20) o Opcje projektu (22) Atmel Studio - dodatki (27) o Naggy (28) o MarginOfError (28) o Data Size Viewer (29) o Doxygen Integrator (29) o AnkhSVN (30) AVR w systemie GNU/Linux (30) Rozdział 2. Mikrokontroler i jego otoczenie (33) Podłączenie zasilania (33) o Odsprzęganie zasilania (34) Filtrowanie zasilania dla części analogowej procesora (35) o Zasilacz (36) Łączenie mikrokontrolera z układami pracującymi w innej domenie napięciowej (39) o Konwersja poziomów logicznych pomiędzy układami pracującymi z różnymi napięciami zasilającymi (40) o Piny wejściowe i wyjściowe (40) o Łączenie wyjścia procesora z układem pracującym z napięciem 5 V (43) o Zastosowanie aktywnego konwertera (45) o Konwersja z napięcia wyższego na niższe (45)

o Dzielnik rezystorowy (46) o Użycie do konwersji napięć buforów scalonych (47) o Bufor dwukierunkowy stosowany w magistralach typu open drain (47) Oscylatory zegarowe (49) Zasady wykorzystania zewnętrznego kwarcu (50) Generator kwarcowy 32768 Hz (52) Rozdział 3. Programatory (53) Podłączenie - uwagi ogólne (54) o Problemy (56) Programowanie AVR (56) o Programatory ISP (57) Programatory (59) o Programator AVRISP mkii (59) o Programator USBASP (60) Programatory JTAG (60) o Programator JTAGICE mkii (62) o JTAGICEIII (62) o AVROne! (63) o AVR Dragon (63) o Interfejs debugwire (67) Programowanie z poziomu AS6 - dlaczego warto korzystać z plików w formacie elf (68) Kilka procesorów i interfejs ISP (69) Kilka procesorów w jednym układzie (70) Programatory HV i równoległe (71) Tryb TPI (71) Programator Atmel-ICE (72) o Uaktualnianie firmware narzędzi (73) Czy nie da się taniej? (73) Programowanie przy pomocy narzędzi dostarczonych przez firmę Atmel (74) Program AVRDUDE (75) Rozdział 4. Na czym pracujemy, czyli ATmega168/328 Xplained Mini w skrócie (77) Podłączenie modułu (78) Xplained Mini w Atmel Studio (78) Piny IO (79) Pierwszy program (80) o Wgrywamy pierwszy program (83) Rozdział 5. Bity konfiguracyjne (85) Co to takiego? (85) o Lockbity (86) o Fusebity (86) Sygnatura (90) Konfiguracja fuse- i lockbitów w AVR-libc (90) o Lockbity w AVR-libc (91)

o Fusebity w AVR-libc (91) Konfiguracja w Atmel Studio (92) Rozdział 6. Arytmetyka i operacje bitowe (95) Arytmetyka (95) o Reprezentacja binarna liczb (95) o Proste typy danych (97) o Arytmetyka stałopozycyjna (102) o Arytmetyka zmiennopozycyjna (108) Operacje bitowe (116) o Operacja iloczynu bitowego (116) o Operacja sumy bitowej (117) o Operacja sumy wyłączającej (118) o Operacja negacji bitowej (119) o Operacje przesunięć bitowych (120) Rozdział 7. Podstawy języka C na AVR (123) Zasięg zmiennych (123) o Zmienne globalne (124) o Zmienne lokalne (125) o Wskaźniki (127) o Tablice (133) Struktury (137) o Wskaźniki i struktury (138) o Struktury anonimowe (139) o Inicjalizacja pól struktury (139) o Unie (140) o Pola bitowe (141) o Definicja a deklaracja (142) Funkcje (143) o Przekazywanie parametrów przez wartość i referencję (145) o Rekurencyjne wywołania funkcji (145) Słowa kluczowe (146) o Operatory (146) o Instrukcje sterujące (150) Rozdział 8. Zarządzanie projektem i preprocesor (155) Preprocesor (155) o Dyrektywa #include (156) o Dyrektywy kompilacji warunkowej (157) o Dyrektywa #define (158) Komentarze (160) Nazewnictwo (161) o Literały (163) Podział kodu na pliki (165) o Widoczność funkcji (169) o Widoczność zmiennych - słowo kluczowe extern (170)

o Podkatalogi (172) Modyfikator const (173) Słowo kluczowe static (175) Dyrektywa inline (175) o inline funkcja(); (177) o static inline funkcja(); (178) o extern inline funkcja(); (179) Modyfikator register (180) Rozdział 9. Sekcje programu (183) Sekcje danych (184) o Sekcja.text (184) o Sekcja.data (184) o Sekcja.bss (185) o Sekcja.eeprom (186) Sekcje zawierające kod programu (186) o Podsekcje.init[0-9] (187) o Podsekcje.fini[0-9] (188) Sekcje specjalne (188) Sekcje a opcje kompilacji (188) Sekcje tworzone przez programistę (190) Umieszczanie sekcji pod wskazanym adresem (191) Rozdział 10. Kontrola rdzenia i zarządzanie poborem energii (193) Źródła sygnału RESET (193) o Power-on Reset (195) o Zewnętrzny sygnał RESET (195) o Brown-out Detector (195) o Układ watchdog (196) Zarządzanie poborem energii (201) o Usypianie procesora (201) o Wyłączanie układu BOD (202) o Wyłączanie podsystemów procesora (203) o Preskaler zegara (203) o Inne sposoby minimalizowania poboru energii (204) Rozdział 11. Dynamiczna alokacja pamięci (207) Alokacja pamięci w bibliotece AVR-libc (209) o Funkcja malloc (212) o Funkcja calloc (212) o Funkcja realloc (212) o Funkcja free (214) Wycieki pamięci i błędne użycie pamięci alokowanej dynamicznie (214) Wykrywanie kolizji sterty i stosu (216) o Metoda I - własne funkcje alokujące pamięć (217) o Metoda II - sprawdzanie ilości dostępnej pamięci (217) o Metoda III - marker (217)

o Metoda IV - wykorzystanie interfejsu JTAG lub debugwire (217) o Metoda V - wzór w pamięci (219) Rozdział 12. Wbudowana pamięć EEPROM (223) Kilka słów, czym jest EEPROM (223) Dostęp do EEPROM w AVR (224) Zapobieganie uszkodzeniu zawartości pamięci EEPROM (225) Kontrola odczytu i zapisu do pamięci EEPROM (226) o Odczyt zawartości komórki pamięci (226) o Zapis do komórki pamięci (226) Dostęp do EEPROM z poziomu AVR-libc (228) o Deklaracje danych w pamięci EEPROM (228) o Funkcje realizujące dostęp do pamięci EEPROM (230) o Inne funkcje operujące na EEPROM (232) Techniki wear leveling (233) EEPROM i awaria zasilania (235) Problem atomowości przy dostępie do EEPROM (241) Zapis do EEPROM z użyciem przerwań (241) Rozdział 13. Dostęp do pamięci FLASH (245) Wskaźniki wykorzystujące przestrzenie adresowe (248) Jak to bywało dawniej... (252) Dostęp do pamięci FLASH > 64 kb (253) Typy 24-bitowe (254) Rozdział 14. Dostęp do 16-bitowych rejestrów IO (255) Dostęp do 16-bitowego rejestru ADC (255) Dostęp do 16-bitowych rejestrów timerów (256) Rozdział 15. Zwalniamy, czyli kiedy opóźnienia są konieczne (259) Opóźnienia przy zmiennym taktowaniu (263) Wykorzystanie timerów do realizacji opóźnień (265) Rozdział 16. Pliki z danymi - jak je dodawać do projektu? (267) Kompilacja plików binarnych (268) Łączenie plików obiektowych z projektem (270) Dostęp do danych binarnych (273) o Dostęp do danych z wykorzystaniem przestrzeni adresowych (275) Rozdział 17. Dostęp do portów IO mikrokontrolera (277) Konfiguracja pinu IO (278) Manipulacje stanem pinów IO (282) o Zmiana stanu portu na przeciwny (282) o Ustawianie linii IO (283)

o Zerowanie linii IO (283) o Makrodefinicja _BV() (283) o Użycie pól bitowych (284) Synchronizator (285) Przekazywanie rejestru jako parametru funkcji (286) Przykłady praktyczne (287) o Sterowanie wyświetlaczem 7-segmentowym (287) o Podłączenie przycisków (290) o Enkoder obrotowy (294) o Klawiatura matrycowa (299) Rozdział 18. Rejestry IO ogólnego przeznaczenia (303) Wykorzystanie innych rejestrów jako GPIOR (305) Rozdział 19. Przerwania (307) o Czym są przerwania? (307) o Przerwania maskowalne (308) o Źródła przerwań (309) o Wektory przerwań (311) Obsługa przerwań (312) o Puste wektory przerwań (314) o Puste przerwania (314) o Współdzielenie kodu przez przerwania (315) o sei()/cli() (316) o Atrybut naked i obsługa przerwań w asemblerze (317) o Modyfikator volatile (319) o Atomowość dostępu do danych (324) o Funkcje reentrant (327) Przykłady praktyczne (328) o Wyświetlanie multipleksowane (329) o Wyświetlanie multipleksowane z regulacją jasności wyświetlacza (333) o Obsługa przycisków (336) o Obsługa enkodera (339) o Klawiatura matrycowa (340) Rozdział 20. Timery (343) Sygnał taktujący (344) o Wewnętrzny sygnał taktujący (344) o Zewnętrzny sygnał taktujący (345) Licznik (346) Układ porównujący (346) o Wpływ na piny IO (347) Moduł przechwytywania zdarzeń zewnętrznych (348) o Eliminacja szumów (349) o Komparator jako wyzwalacz zdarzenia ICP (349) Tryby pracy timera (349)

o Tryb prosty (349) o Tryb CTC (352) o Tryby PWM (353) o Układ ochronny (358) o Modulator sygnału wyjściowego (359) Miernik częstotliwości i wypełnienia (360) Rozdział 21. RTC - czyli trochę o zegarach (365) o Realizacja sprzętowa (366) o Realizacja programowa (366) Czas drogą radiową, czyli DCF77 (369) o Trochę więcej o DCF77 (369) o Dekodowanie danych (370) o Funkcje konwersji czasu (372) o Moduł odbiornika DCF77 (372) Rozdział 22. Komparator (379) Funkcje dodatkowe (380) o Blokowanie pinów (380) o Wyzwalanie zdarzeń timera (380) o Wybór wejścia komparatora (380) o Wyzwalanie przetwornika ADC (381) Rozdział 23. Przetwornik analogowo-cyfrowy (383) Wybór napięcia referencyjnego (384) Co to jest LSB? (385) Kalibracja ADC (386) Nadpróbkowanie (387) o Uśrednianie (388) o Decymacja i interpolacja (389) Jak zwiększyć precyzję pomiarów? (389) Multiplekser (390) Blokowanie pinów cyfrowych (391) Przetwornik ADC (392) o Tryb pojedynczej konwersji (393) o Tryb ciągłej konwersji (393) Wejścia pojedyncze i różnicowe (394) Wynik (395) Wyzwalacze (395) Przerwania ADC (396) Precyzyjne pomiary przy pomocy ADC (397) Przykłady (399) o Termometr analogowy LM35 (399) o Klawisze (401) Rozdział 24. Obsługa alfanumerycznych wyświetlaczy LCD (407)

Obsługa wyświetlaczy alfanumerycznych (408) o Funkcje biblioteczne (413) o Definiowanie własnych znaków (418) Transakcyjna obsługa LCD (420) o Przykład - menu (430) Rozdział 25. Monochromatyczne wyświetlacze graficzne (439) Wizyta w muzeum, czyli wyświetlacze wykorzystujące KS0108 (441) Moduły wykorzystujące kontroler ST7565R (450) Budowa i funkcje kontrolera ST7565R (451) Funkcje specjalne kontrolera (457) o Obracanie obrazu (457) o Regulacja kontrastu (458) o Numer pierwszej wyświetlanej linii (459) Czcionki (460) Mała optymalizacja (465) Podwójne buforowanie (467) o Adres początku wyświetlania obrazu (468) Menu (469) o Menu oparte na piktogramach (471) Rozdział 26. Interfejs USART (477) Interfejsy szeregowe (477) Interfejs USART (478) Format transmisji danych (480) Interfejs USART mikrokontrolera AVR (482) o Szybkość transmisji (482) o Dobór kwarcu (484) o Formaty ramek danych (484) o Nadajnik i odbiornik USART (485) Kontrola poprawności danych (486) USART z Xplained Mini (487) Terminal (487) Wykorzystanie przerwań (488) Równoczesny dostęp do USART z wielu "wątków" (493) Dostęp do USART z wykorzystaniem strumieni (495) o Metoda get (496) o Metoda put (496) o Otwieranie strumienia (497) Połączenie mikrokontroler - mikrokontroler (498) o Tryb synchroniczny pracy USART (499) RS485 (504) Tryb MPCM (506) o Komputer w charakterze urządzenia master MPCM (509) Rozdział 27. Interfejs SPI (511) Inicjalizacja interfejsu (513)

o Ustawienie pinów IO (514) o Zegar taktujący (516) o Procesor w trybie Master SPI (516) o Procesor w trybie slave SPI (516) Przykłady (517) o Połączenie AVR - AVR (517) o Połączenie AVR - rejestr szeregowy (522) Interfejs USART w trybie SPI (526) o Taktowanie magistrali SPI (527) o Tryb pracy SPI (528) o Format ramki danych (528) o Konfiguracja interfejsu (528) Rozdział 28. Interfejs TWI (531) Tryb multimaster (534) Inicjalizacja interfejsu (535) Mikrokontroler w trybie I2C master (535) o Bity START i STOP (535) o Podstawowe funkcje do współpracy z I2C (536) o Współpraca z zewnętrzną pamięcią EEPROM (539) o Współpraca z zewnętrzną pamięcią FRAM (544) o Umieszczanie zmiennych w zewnętrznej pamięci EEPROM (545) o Współpraca z zegarem RTC (547) o Obsługa ekspandera IO PCF8574 (551) Procesor w trybie I2C slave (552) o Przykład (555) Rozdział 29. Interfejs USI (563) 4-bitowy licznik i zegar (563) Przerwania USI (564) Zmiana pozycji pinów (565) Wykorzystanie interfejsu USI w trybie SPI (566) o Tryb SPI master (566) o Tryb SPI slave (567) Rozdział 30. Interfejs 1-wire (569) Realizacja master 1-wire na AVR (572) o Realizacja master 1-wire przy pomocy pinów IO (573) o Realizacja master 1-wire przy pomocy interfejsu UART (576) o Wysokopoziomowe funkcje obsługi 1-wire (581) Termometr cyfrowy DS1820 (584) Rozdział 31. Dużo LED-ów, dużo zabawy (587) Matryce LED (587) o Projekt PCB i zasilanie (588) o Układ z matrycą dwukolorową (590)

o Sterowanie matrycą (591) Sterownik WS2812B (593) o Zasilanie (595) o Bit banging (596) o Wykorzystanie SPI (597) Rozdział 32. Piloty TV (601) Część sprzętowa, czyli odbiornik IR (603) Część programowa, czyli standardy kodowania (604) o Standard NEC i pokrewne (604) RC5 (610) o Kod Manchester (610) o Dekoder RC5 (611) o Inne standardy kodowania (615) Rozdział 33. Łączenie kodu C i asemblera (617) ABI (618) Słowo kluczowe asm (621) o Typy operandów (623) o Dostęp do portów IO (625) o Dostęp do danych wielobajtowych (626) o Dostęp do wskaźników (627) o Lista modyfikowanych rejestrów (627) o Wielokrotne użycie wstawki asemblerowej (628) Pliki.S (629) o Definicje (630) o Definicja symboli globalnych (630) o Dyrektywy asemblera (635) o Wywołanie funkcji języka C z asemblera (637) Rozdział 34. Bootloader (639) Pamięć NRWW i RWW (640) Bity konfiguracyjne bootloadera (641) o Konfiguracja lockbitów z poziomu aplikacji (642) Programowanie pamięci FLASH (643) Wykorzystanie przerwań w kodzie bootloadera (645) o Usuwanie tablicy wektorów przerwań (645) o Skrócenie tablicy wektorów przerwań (647) Start bootloadera (650) o Wykorzystanie dodatkowego przycisku/zworki (650) o Wykorzystanie markerów w pamięci EEPROM (651) o Oczekiwanie na specjalny znak w wybranym kanale komunikacji (652) o Start aplikacji (652) Współdzielenie kodu aplikacji i bootloadera (653) o Wywoływanie funkcji bootloadera w procesorach ATMega256x (655) o Wywoływanie funkcji obsługi przerwań zawartych w kodzie bootloadera (658) o Współdzielenie zmiennych pomiędzy aplikacją a bootloaderem (658)

Rozdział 35. Debugowanie programu (661) Konfiguracja debuggera (663) Konfiguracja projektu do debugowania (664) Debugger sprzętowy (665) Debugger programowy (symulator) (667) o Plik stymulacji (668) Pułapki (674) o Pułapki na dane (678) o Punkty śledzenia (679) o Pułapki warunkowe (681) Podgląd pamięci (683) Podgląd stosu wywołań (684) Określenie czasu symulacji (684) Okno dezasemblera (685) Okno podglądu zmiennych (686) o Łańcuchy formatujące (687) Makrodefinicja ASSERT (688) Przerwania w trakcie debugowania (692) _delay_xx i symulator (693) Skorowidz (695)