Obsah Úvod (11) - Ukázkové kódy (12)
- Diagramy (12)
- Potřebné díly (12)
Kapitola 1. Instalace prostředí a potřebných nástrojů (15) - Instalace WinAVR (16)
- Instalace AVR Studio (17)
- Systémy GNU / Linux (18)
- AVR Studio (19)
- První aplikace (21)
- Přidávání souborů do projektu (25)
- Nástroje (27)
- Linker (27)
- Velikost AVR (31)
- Program avr-nm (32)
- Avr-objcopy
- Program výroby (36)
- Soubory výsledků (43)
- Knihovny (46)
- Návrh knihovny (47)
- Tvorba knihovny (48)
- Zahrnutí knihovny do programu (49)
- Zastaralé funkce (50)
- Přepisování knihovních funkcí (50)
- Odstranění nepotřebných funkcí a dat 51
Kapitola 2. Programování mikrokontroléru (53) - Připojení - obecné poznámky (53)
- Programátoři ISP (55)
- Struktura programátoru (56)
- USBASP Programmer (59)
- Několik procesorů v jednom čipu (59)
- Programátoři JTAG (60)
- Programátor JTAGICE (61)
- Programátor JTAGICE mkII (62)
- Několik procesorů v jednom čipu (62)
- AVR Dragon (63)
- HW a paralelní programátoři (63)
- Režim TPI (64)
- Programování procesoru v AVR Studio (64)
- Programování pomocí nástrojů poskytovaných Atmelem (65)
- Program AVRDUDE (67)
- Program PonyProg (70)
- Pojistky a lockbity v AVR-libc (70)
- Lockbits (71)
- Pojistky (71)
- Podpis (74)
- Lockbits v AVR-libc
- Pojistky v AVR-libc (75)
Kapitola 3. C Základy AVR - Aritmetika (77)
- Jednoduché datové typy
- Aritmetika pevného bodu (81)
- Aritmetika s plovoucí desetinnou čárkou (87)
- Bitové operace
- Binární reprezentace čísel 95
- Provoz bitového produktu 96
- Provoz bit-součet 97
- Operace vyloučení součtu 98
- Operace bitové negace
- Operace s bitovým posunem (100)
- Variabilní rozsah (100)
- Globální proměnné 101
- Místní proměnné 102
- Konstantní modifikátor 103
- Indikátory (104)
- Pole (109)
- Vlastnosti (112)
- Předávání parametrů podle hodnoty a reference 114
- Volání funkce (114)
- Rekurzivní volání funkcí
- Klíčová slova (116)
- Operátoři
- Pokyny k ovládání (120)
- Preprocesor (123)
- Směrnice #include 124
- Směrnice o podmíněné kompilaci
- Směrnice #define 126
- Záhlaví a zdrojové soubory (127)
- Definice versus deklarace
- Statické klíčové slovo 129
- Externí klíčové slovo (130)
- Inline směrnice 132
- Modifikátor registrace (136)
Kapitola 4. Sekce programu 141 - Datové sekce (142)
- .Text Oddíl 142
- . Datová sekce 142
- .Bss Část 143
- .Eprom Oddíl 143
- Sekce programového kódu (144)
- .Init podsekce [0-9] (144)
- Pododdíly .Fini [0-9] (145)
- Speciální sekce (146)
- Vývojář vytvořil sekce 146
- Umístění sekcí na konkrétní adresu (147)
Kapitola 5. Základní ovládání a správa napájení (149) - RESET zdroje signálu (149)
- Reset při zapnutí (150)
- Externí signál RESET (151)
- Detektor zhasnutí (151)
- Obvod hlídacího psa (152)
- Řízení spotřeby energie (156)
- Spánek procesoru (157)
- Deaktivace BOD (157)
- Zakázání subsystémů CPU
- Preskaler hodin (159)
- Další způsoby, jak minimalizovat spotřebu energie 160
Kapitola 6. Dynamické přidělování paměti 163 - Přidělení paměti v knihovně AVR-libc 164
- Funkce malloc 166
- Funkce Calloc 166
- Funkce Realloc 166
- Volná funkce (168)
- Úniky paměti a zneužití dynamicky přidělené paměti 169
- Jak funguje alokátor 171
- Zjištění kolizí haldy a hromádky 172
- Metoda I - Funkce přidělení vlastní paměti 173
- Metoda II - Kontrola množství dostupné paměti 173
- Metoda III - značka (173)
- Metoda IV - Vzorec paměti (173)
- Metoda V - použití rozhraní JTAG
Kapitola 7. Integrovaná EEPROM (177) - Prevence poškození EEPROM (178)
- Řízení čtení a zápisu do EEPROM (179)
- Čtení obsahu paměťové buňky (180)
- Zápis do paměti (180)
- Přístup k EEPROM z AVR-libc (181)
- Deklarace dat v EEPROM (182)
- Funkce, které přistupují k EEPROM (183)
- Další funkce, které fungují na EEPROM
- Techniky vyrovnávání opotřebení (186)
Kapitola 8. Přístup k paměti FLASH 189 - Datové typy související s pamětí FLASH 190
- Čtení dat z paměti FLASH (191)
- Přístup do paměti FLASH ᡸ kB (192)
Kapitola 9. Rozhraní XMEM 193 - Použití externího SRAM v programu (197)
- Konfigurace I - v externí paměti je pouze speciální sekce (198)
- Konfigurace II - všechny sekce v externí paměti, zásobník v interní paměti (199)
- Konfigurace III - v externí paměti je umístěna pouze hromada (201)
- Konfigurace IV - v haldě externí paměti a segmentu definovaném programátorem (202)
- Konfigurace V - zásobník je v externí paměti (208)
- ROM jako externí paměť (208)
Kapitola 10. Přístup k 16bitovým registrům IO (211) - Přístup k 16bitovému registru ADC (211)
- Přístup k 16bitovým registrům časovače (213)
Kapitola 11. Zpoždění (217) Kapitola 12. Přístup k IO portům procesoru 221 - Konfigurace IO pinů (221)
- Manipulace stavu IO pinů (225)
- Změna stavu portu na opačný
- Nastavení linky IO (226)
- Resetování IO linky 226
- Makrodefinice _BV () 227
- Používání bitových polí 227
- Synchronizátor (228)
- Praktické příklady 230
- Ovládání 7segmentového displeje (230)
- Připojení tlačítkem (232)
- Rotační enkodér (237)
- Maticová klávesnice (242)
Kapitola 13. Obecné účely IO registry - Použití jiných registrů jako GPIOR 246
Kapitola 14. Přerušení 249 - Přerušení zpracování
- sei () / cli () (254)
- Nahý atribut a přerušení zpracování v sestavě
- Těkavý modifikátor 257
- Atomicita přístupu k datům
- Funkce reentrantu 266
- Praktické příklady 268
- Multiplexovaný displej (268)
- Multiplexovaný displej s ovládáním jasu displeje (272)
- Ovládání tlačítkem (276)
- Podpora kodéru (279)
- Maticová klávesnice (280)
Kapitola 15. Analogově-digitální převodník (283) - Výběr referenčního napětí (284)
- Multiplexer (285)
- Převaděč ADC (285)
- Režim jedné konverze 286
- Režim nepřetržité konverze 287
- Jednoduché a diferenciální vstupy (287)
- Výsledek (288)
- Spouštěče (288)
- Blokování digitálního vstupu (289)
- Přerušení ADC (289)
- Přesná měření s ADC (290)
- Převzorkování (291)
- Průměrování (292)
- Decimace a interpolace 292
- Příklady (292)
- Analogový teploměr LM35 (293)
- Klíče (295)
Kapitola 16. Analogový komparátor 301 - Další funkce (302)
- Zajištění pinu (302)
- Spouštěcí události časovače (302)
- Výběr vstupu komparátoru (302)
- Spouštění ADC (303)
Kapitola 17. Časovače (305) - Hodinový signál (306)
- Interní časovací signál (306)
- Externí hodinový signál (308)
- Počítadlo (308)
- Systém pro porovnávání dat 309
- Interceptor externích událostí (310)
- Potlačení šumu (311)
- Komparátor jako spouštěč události ICP
- Režimy časovače (312)
- Jednoduchý režim (312)
- Režim CTC (315)
- Režimy PWM (316)
- Ochranný obvod (321)
- Modulátor výstupního signálu (322)
- Měřič frekvence a výkonu (323)
- Provedení RTC pomocí časovače (326)
- Realizace hardwaru (327)
- Provádění programu (328)
Kapitola 18. Manipulace s LCD (331) - Podpora alfanumerických displejů (332)
- Funkce knihovny 337
- Definování vlastních postav 342
- Příklad - nabídka (345)
- Podpora grafického displeje (354)
Kapitola 19. Rozhraní USART 367 - Sériová rozhraní (367)
- Rozhraní USART (368)
- USART rozhraní mikrokontroléru AVR (371)
- Příklady (375)
- Mikrokontrolér - připojení k PC (375)
- RS485 (383)
Kapitola 20. Rozhraní SPI 391 - Inicializace rozhraní
- Nastavení IO pinů (395)
- Hodiny (396)
- Procesor v režimu Master SPI (396)
- Procesor v režimu SPI slave (397)
- Příklady (397)
- Připojení AVR-AVR (397)
- Připojení AVR - sériový registr (403)
- Rozhraní USART v režimu SPI (408)
- Načasování sběrnice SPI (409)
- Režim SPI (409)
- Formát datového rámce (409)
- Konfigurace rozhraní (410)
Kapitola 21. Rozhraní TWI (413) - Režim Multimaster (416)
- Inicializace rozhraní 417
- Procesor v režimu I2C master (417)
- Bity START a STOP (417)
- Základní funkce pro spolupráci s I2C (418)
- Spolupráce s externí pamětí EEPROM (422)
- Spolupráce s externí pamětí FRAM (427)
- Ukládání proměnných do externí EEPROM (427)
- Spolupráce s hodinami RTC (431)
- Podpora IO expandér PCF8574 (436)
- Procesor v režimu I2C slave (437)
Kapitola 22 Rozhraní USI 447 - 4bitový čítač a hodiny 447
- Přerušení USI
- Změna polohy čepu (449)
- Používání rozhraní USI v režimu SPI 449
- SPI hlavní režim (451)
- Režim SPI slave (452)
Kapitola 23. Rozhraní USB 453 - Síla (454)
- Datové signály (455)
- VID a PID (456)
- USB rozhraní implementované pomocí převaděče (458)
- Softwarově implementované USB rozhraní (459)
- Elektrické připojení (460)
- Přístup na PC (460)
- Softwarové rozhraní USB na AVR (461)
- Hardwarové rozhraní USB (464)
Kapitola 24 1vodičové rozhraní 465 - 1vodičová hlavní implementace na AVR (469)
- 1vodičová hlavní implementace pomocí IO pinů (469)
- 1vodičová hlavní implementace pomocí rozhraní USART (472)
- 1-vodičové manipulační funkce vysoké úrovně 477
- Digitální teploměr DS1820 (480)
Kapitola 25 Bootloader 483 - Paměti NRWW a RWW (483)
- Konfigurační bity bootloaderu (485)
- Konfigurace Lockbits z aplikace (486)
- Programování paměti FLASH (487)
- Použití přerušení v kódu bootloaderu 489
- Odstranění tabulky vektorů přerušení
- Zkrácení tabulky přerušení vektoru 491
- Zavaděč bootloaderu (496)
- Použití dalšího tlačítka / propojky (496)
- Používání značek v EEPROM (497)
- Čekání na speciální znak ve vybraném komunikačním kanálu (498)
- Začátek aplikace (499)
- Sdílení aplikačního kódu a bootloaderu (499)
- Vyvolání funkcí bootloaderu v procesorech ATMega256x (501)
- Volání obslužných rutin přerušení obsažených v kódu bootloaderu (505)
- Sdílení proměnných mezi aplikací a bootloaderem (505)
- Mikrokontroléry AVR se zabudovaným zavaděčem (507)
Kapitola 26 Kontrola integrity programu 509 - Kontrolní součet (509)
- CRC (511)
- Automatická tvorba CRC 514
Kapitola 27. Zabezpečení kódu (517) - Metody narušení zabezpečení 517
- Bezpečné upgrady aplikací (518)
- Poznámka AVR231 - AES Bootloader (519)
- Nastavení konfiguračních bitů (524)
- Příprava aplikace (526)
- Načítání aktualizace (527)
Kapitola 28. Kombinace C a montážního kódu 529 - Klíčové slovo asm (530)
- Typy operandů
- Přístup k IO portům (533)
- Přístup k vícebajtovým datům 533
- Přístup k indikátorům (534)
- Seznam upravených registrů (535)
- Opětovné použití vkládání montážního jazyka 535
- Soubory .S
- Použití registrů v sestavě
- Příklady (541)
Kapitola 29. Optimalizace a ladění receptury programu - Optimalizace vašeho programu
- Možnosti kompilátoru pro optimalizaci
- Atributy optimalizace
- Ladění programu
- Spuštění relace ladicího programu 553
- Pokročilá kontrola průběhu aplikace (556)
Rejstřík (559) |