Obvody čítačů a časovačů
Mikrokontrolér obvykle obsahuje jeden nebo více časovačů/čítačů, které lze programově konfigurovat. Časovače a čítače umožňují programu mikrokontroléru např. měřit časové intervaly, detekovat počet impulsů za určitý časový interval apod.
Obr. 1: Schéma vnitřního zapojení osmibitového časovače/čítače mikrořadiče AVR
Obvod časovače/čítače
Vlastní obvod časovače/čítače (Timer/Counter) může být inkrementován či dekrementován impulzy na sběrnici count z obvodu řídící logiky (Control Logic). Směr čítání, nahoru či dolů , definuje signál na sběrnici direction od řídící logiky. Řídící logika může též signálem clear na sběrnici obvod časovače/čítače vynulovat. Výběr zdroje impulzů pro časovač/čítač je proveden multiplexním přepínačem (Clock select), když můžeme výběr provést mezi dvěma zdroji impulzů. V režimu čítače přívádíme impulzy na vstup čítače přes obvod detekce náběžné hrany impulzu (Edge Detector) přímo z vývodu mikrořadiče Tn. V případě pracovního režimu časovače jsou na vstup čítače přiváděné impulzy o konstantním kmitočtu, který má souvislost s kmitočtem hodinového generátoru mikrořadiče. Tento kmitočet může být ponížen obvodem předděličky (Prescaler), když je možné vybrat mezi čtyřmi dělícími konstantami. Jsou to /clk8, /clk64, /clk256 a /clk1024.
Obsah časovače/čítače je nepřetržitě porovnáván (komparován) s obsahem registru OCRn. V případě rovnosti je vygenerován signál na vývodě OCn miklrořadiče. Tento signál může též vygenerovat interní přerušení běhu programu mikrořadiče.
Režim činnosit čítače je nastaven v řídícím registru TCCR0
Obr. 2: Popis bitů I/O registru TCCR0 pro konfiguraci časovače/čítače 0
Nastavení bitů CS00, CS01 a CS02 definuje zdroj impulzů podle následující tabulky
Tab. 1: Nastavení vstupní předděličky časovače/čítače 0 a výběru čítání impulzů na vstupu T0
Nastavení bitů WGM01 a WGM00 vybirá jeden ze čtyř možných režimů čítače/časovače
Tab. 2: Výběr pracovního módu časovače/čítače 0
Přehled pracovních režimů časovače/čítače mikrořadiče AVR:
- Mód 0 režim Normal - obsah čítače není komparován, obsah je incrementován, po přeplnění je jeho obsah vynulován;
- Mód 1 režim PWM - s fázovou korekcí, umožňuje či nahrazuje na výstupu OC0 digitálně - analogový převodník;
- Mód 2 režim CTC - zkrácený cyklus čítání čítače do hodnoty uložené v komparačním registru OCR0;
- Mód 3 režim rychlé PWM.
Zdroje
- HRBÁČEK, Jiří. Komunikace mikrokontroléru s okolím. 1. vyd. Praha: BEN - technická literatura, 1999, 159 s. ISBN 80-86056-42-21.
- MATOUŠEK, David. Práce s mikrokontroléry ATMEL AVR ATmega16. 1. vyd. Praha: BEN - technická literatura, 2006, 319 s. μC. ISBN 80-730-0174-8.
- Tovární katalogový list (datasheet Atmega32) společnosti ATMEL Corporation [online]. [cit. 2015-01-28]. Dostupné z: www.atmel.com/products/microcontrollers/avr/default.aspx
- VÁŇA, Vladimír. Mikrokontroléry ATMEL AVR: programování v jazyce C : popis a práce ve vývojovém prostředí CodeVisionAVR C. 1. vyd. Praha: BEN - technická literatura, 2003, 215 s. ISBN 80-730-0102-0.
- [online]. [cit. 2015-01-30]. Dostupné z: http://www.atmel.com/images/doc2503.pdf
Obrázky a tabulky
- Obr. 1, 2: [online]. [cit. 2015-01-30]. Dostupné z: http://www.atmel.com/images/doc2503.pdf
- Tab. 1, 2: [online]. [cit. 2015-01-30]. Dostupné z: http://www.atmel.com/images/doc2503.pdf
Názvosloví
EDGE DETEKTOR - detektor pro výbět hrany vstupního impulzu.
Tn - pin pro vstup čítače impulzů.
OCn - pin pro výstup impulzů při komparaci čítače/časovče a registru OCRn.
OCRn - registr pro uložení komparační hodnoty.