Obsah
Kapitola 1. Úvod nebo noví členové rodiny AVR (11)
- Příklady knihy (12)
- Mikrokontroléry XMEGA (12)
- XMEGA a další AVR (15)
- Překladač (15)
- Nová periferie (16)
Kapitola 2. Jak začít - instalace prostředí (21)
- Xplained jako vývojová deska (22)
- Instalace Xplained na systém (22)
- Instalace XMEGA s bootloaderem třídy DFU (25)
- Programování čipů XMEGA (25)
- Načítání firmwaru přes FLIP (26)
- Atmelův zavaděč (28)
- Základní možnosti pro batchisp (28)
- Rozhraní JTAG (32)
- Programování pomocí rozhraní PDI (34)
- Programátoři (34)
- AVRISP mkII (35)
- JTAGICE mkII (35)
- JTAGICEIII (36)
- AVROne! (36)
- AVR Dragon (36)
- Programování a ladění procesorů XMEGA (43)
- Odpojení napájení (44)
- Instalace potřebného softwaru (44)
- Atmel Studio 6 - Základy (45)
- Programování z úrovně AS6 - proč byste měli používat soubory ve formátu elfů (53)
Kapitola 3. Organizace a řízení projektu (55)
- Komentáře (55)
- Nomenklatura (57)
- Prolomení kódu do souborů 61
- Viditelnost funkce
- Viditelnost proměnných (66)
- Podadresáře (67)
- Rozpis funkcí 69
- Globální proměnné
- Systémy verzí (74)
- Server SVN ve vašem počítači (75)
- Jak používat SVN (78)
- Práce s SVN
- Závěrečné poznámky (84)
- Jiná zařízení (85)
- Jak psát lepší programy? (86)
Kapitola 4. Jak vytvořit lepší a efektivnější kód
- Povolit optimalizaci (90)
- Délka typů (91)
- Globální proměnné a místní proměnné 93
- Modifikátor registrace (94)
- Používání globálních registrů pro obecné účely 97
- Použití jiných registrů jako GPIOR
- Inicializace globálních proměnných
- Pozice proměnných v paměti 99
- Optimalizace smyčky
- Optimalizace funkcí
- Optimalizace hlavní funkce 101
- Optimalizace prologů a epilogů funkcí (101)
- Optimalizace předávání funkčních parametrů 102
- Optimalizace návratnosti funkce 105
- Atributy dalších funkcí
- Jiný (110)
- Odstranění mrtvého kódu 111
- Konstruktéři a ničitelé 114
Kapitola 5. Jak objednat chaos nebo složité datové typy a seznamy (117)
- Pole (118)
- Struktury (119)
- Hluboká kopie a mělká kopie (123)
- Ukazatele a struktury 126
- Anonymní struktury 127
- Inicializace pole struktury
- Unie (129)
- Bitová pole (130)
- Struktury a optimalizace programu
- Seznamy (135)
- Jednosměrné seznamy
- Obousměrné seznamy
- Seznamy XOR 142
- Nárazníky (148)
- Vyrovnávací paměť (149)
- FIFO / LIFO fronty (152)
- Zásobník (152)
Kapitola 6. Konec nepořádku neboli názvy registrů a periferních systémů (155)
- Struktury popisující mikrokontroléry XMEGA
- Registrovat jména
- Názvy bitů 162
Kapitola 7. Lepší a jednodušší porty CPU IO na steroidech (167)
- Vstupní a výstupní piny (168)
- Převod logických úrovní mezi obvody pracujícími s různými napájecími napětími (171)
- Připojení výstupu procesoru k čipu pracujícímu při 5 V (171)
- Používání aktivního převaděče 174
- Konverze z vysokého na nízké napětí (174)
- Odporový dělič (176)
- Použití převodu integrovaného vyrovnávacího napětí 177
- Obousměrná vyrovnávací paměť používaná v autobusech s otevřeným odtokem (178)
- Kontrola nad porty CPU
- Vstupní a výstupní piny (182)
- Synchronizátor (184)
- Konfigurace ovladače pinu (186)
- Konfigurace totemového pole (186)
- Konfigurace tažení nahoru / dolů (187)
- Konfigurace provozovatele sběrnice (188)
- Drátová konfigurace AND
- Konfigurace kabelového připojení OR (191)
- Invertování IO výstupů (192)
- Řízení rychlosti klesání a stoupání svahů (193)
- Kontrola událostí pinů 193
- Registr řízení přístavů (194)
- Atomová modifikace stavu pinu a podpora RMW (196)
- Alternativní funkce pinů
- Virtuální porty (200)
- Předání registru jako funkčního parametru 202
- Přemapování IO výstupů 203
Kapitola 8 Řadič NVM - jak vybrat paměť jednoduchým a příjemným způsobem (205)
- EEPROM a související operace (206)
- Přístup k EEPROM z AVR-libc (208)
- Přístup k EEPROM s přímým přístupem k řadiči NVM (213)
- Techniky vyrovnávání opotřebení (219)
- Oddělení mazání a zápisu paměti (221)
- Přístup k EEPROM pomocí tokenů (224)
- EEPROM a porucha napájení (232)
- Problém atomicity při přístupu k EEPROM 244
- Zápis do EEPROM s přerušením (244)
- Zabránění poškození paměti EEPROM (246)
- Přístup do paměti FLASH (246)
- Datové typy související s pamětí FLASH 248
- Čtení dat z paměti FLASH (250)
- FLASH přístup v avr-gcc 4.7 a vyšších - pojmenované adresní prostory (252)
- Ukazatele využívající adresní prostory 254
- 24bitové typy
Kapitola 9. Potřebuji více energie - pár slov o konfiguraci hodin 259
- Hodiny řídící registry (260)
- Nastavení hodin (262)
- Zdroje hodin (263)
- Odemkněte zdroj hodin (270)
- PLL čip (270)
- DFLL (272)
- Monitorovací systém externích hodin (275)
- Změna zdroje hodin a frekvence 277
- Zamknutí nastavení hodin (277)
- Přednastavovače hodin (278)
- Komentáře (281)
- Oddělovací kondenzátory (282)
Kapitola 10. Přerušení a Kontrola přerušení 285
- Přerušení (285)
- Co jsou to přerušení? (285)
- Přerušení masky (286)
- Přerušení bez maskování 287
- Zdroje přerušení 287
- Konfigurace a řešení přerušení
- Doba přerušení 288
- Manipulátor přerušení 289
- Přerušit vektory
- Prázdné vektory přerušení
- Prázdné přerušení 293
- Sdílení kódu pomocí přerušení 294
- Nahý atribut a přerušení zpracování v sestavě
- Úrovně přerušení 297
- Přerušení přerušení (300)
- Přerušit priority
- Dynamická priorita
- Příznak povolení globálního přerušení (303)
- Přerušení bez maskování
- Registr stavu přerušení řadiče (304)
- Těkavý modifikátor 305
- Atomicita přístupu k datům
- Pokyny pro úpravu atomové paměti 311
- Přístup k vícebajtovým IO registrům
- Funkce reentrant 314
- Obecné IO registry (316)
Kapitola 11. Systém událostí
- Registr multiplexeru kanálu událostí (320)
- Pokročilé funkce kanálu událostí
- Digitální filtr (322)
- Kvadraturní dekodér (322)
- Indexový kvadraturní kodér (331)
- Řízení softwarových událostí 332
- Události jako řídicí signály pro externí systémy
Kapitola 12. Časovače a počitadla 337
- Co je to pult? (337)
- Zdroje hodin a přednastavovač
- Typy a funkce čítače
- Výstupní piny čítače (350)
- Počitadlo typu 2 (351)
- Časovače typu 4/5 (353)
- Ukládání do mezipaměti 354
- Kontrola přes pult (357)
- Kaskádové čítače (358)
- Dočasný registr TEMP (359)
- Používání PWM ke generování analogových signálů (361)
- Příklad - generování napětí s proměnnou amplitudou 363
- Příklad - generování libovolné křivky 364
- PWM a přerušení (369)
- Nebo možná DMA? (371)
- Rozšíření zvyšující rozlišení 374
- Režim HiRes pro měřič typu 2 377
Kapitola 13. Řadič DMA 379
- Přenos z paměti do paměti (383)
- Invertování dat 384
- Odesílání překrývajících se bloků paměti 385
- Vyplňování paměti vzory 388
- Přenos registru Memory-IO (389)
- Spouštěče (392)
- Bufferová práce
- Priority kanálu DMA
- Přerušení DMA
- Chyba přenosu DMA (397)
- Přerušení ukončení dohody (398)
Kapitola 14. LED diody - co z nich můžete vytlačit? (399)
- LED pásky (399)
- Trochu o vlastnostech oka, tj. RGB v praxi (403)
- Řídicí program (404)
- 7segmentové LED displeje (407)
- LED matice (416)
- Návrh a napájení desky plošných spojů (421)
- Volba napětí dodávajícího matici (422)
- Regulace diodového proudu (423)
- Dvoubarevné maticové rozložení 423
- Maticové ovládání (425)
- Jinak PWM, nebo jak získat barevné odstíny (433)
Kapitola 15. Hodinové obvody v praxi 437
- RTC nebo ... RTC? (438)
- 16bitový RTC čip (438)
- Synchronizace přístupu k registrům RTC (441)
- Registry PER a COMP (442)
- RTC v režimu spánku (445)
- 32bitový RTC čip (445)
- Generátor hodinového signálu (445)
- Registry PER a COMP (445)
- Registr CNT (446)
- Ukázkový kalendářový program (446)
- Linux Timer Marker 447
- Převáděcí čas (447)
- Čas rádiem, tj. DCF77 (451)
- Trochu více o DCF77 (452)
- Dekódování dat 454
- Přijímací modul DCF77 (454)
- Příklad (455)
- Napájecí systém (462)
- Výběr nouzového zdroje energie (463)
- Použití baterie (463)
- Superkondenzátory (463)
- Dobíjecí baterie (464)
- Udržujte energii pro celý procesor 465
- Systém zálohování baterie (465)
Kapitola 16 Budujeme budík nebo konečný stavový stroj v praxi (469)
- FSM 471 s přepínačem / pouzdrem
- Tabulkový FSM
- Budík (477)
- Více o state machines (489)
Kapitola 17. Různé způsoby komunikace - USART v praxi 491
- Elektrická implementace rozhraní USART (492)
- Formát přenosu dat (494)
- Přenosová rychlost (496)
- Terminál (496)
- Náhled přenosu dat (497)
- Virtuální sériový port (499)
- Konfigurace rozhraní (500)
- Konfigurace IO pinů (501)
- Konfigurace formátu DataFrame (502)
- Další funkce rozhraní (502)
- Nastavení rychlosti rozhraní (503)
- Ověření dat 508
- Přenos dat (509)
- Implementace přenosu sdružováním (509)
- Používání přerušení (512)
- Pomocí DMA 517
- Současný přístup k USART z více „vláken“
- Přístup k USART pomocí streamů
- Metoda get (528)
- Metoda put 528
- Otevření proudu (529)
- Režim MPCM (530)
Kapitola 18. Vizualizace dat 535
- Atmel Data Visualizer (535)
- Datový formát (537)
- Struktury používané ADV (540)
- Ultrazvukové měření vzdálenosti (543)
- Digitální moduly (544)
- Vlastní modul (548)
- Stavíme logický analyzátor (550)
- Zařízení (551)
- Komunikační protokol (553)
- Implementace protokolu 555
- Jak rychle ochutnat? (560)
- Zákazník (564)
- Praktické poznámky (566)
Kapitola 19. Použití infračerveného přenosu dat 569
- IR modulace (570)
- Promluvme si s dálkovým ovladačem k televizoru (572)
- Hardwarová část, tj. IR přijímač (572)
- Softwarová část nebo standardy kódování 574
- Standard NEC a související (575)
- RC5 a Motorola (581)
- Kód RC5 (587)
- Další standardy kódování
- IR vysílač (592)
- Zpětné inženýrství - dekódujeme signál dálkového ovládání fotoaparátu Canon (595)
- Přenos dat (597)
- Stavíme datový balíček (600)
- Hardwarový generátor CRC (602)
- CRC počítané softwarem (604)
- Paketový přenos (605)
- Univerzální dálkový ovladač (608)
- Rozhraní IrDA a IRCOM (613)
Rejstřík (615)
|