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.