8-bit Timer/Counter2 with PWM and Asynchronous Operation
Tuto část by bylo vhodné přesunout někam mezi popis hardwarových jendotek protože by měla být společná více procesorům.
Vlastnosti Timer2:
Výše uvedené vlastnosit jsou jen přepisem z datasheetu.
Samotný čítač je 8-mi bitový a jeho aktuální hodnota je přístupná jako registr TCNT2. Tato hodnota je porovnávána s hodnotami v registrech OCR2A a OCR2B. Okamžik kdy je hodnota čítače stejná jako hodnota v porovnávacím registru generuje signál OC2A, OC2B který může být vyveden na výtupní pin mikrořadiče, použit k tvorbě PWM, nebo vyvolat přerušení.
Vstupním signálem který čítač čítá může být signál T2 z nožičky mikrořadiče, nebo výstup předřadné deličky. Správným nastavením zdroje děličky a dělicího poměru získáme vstupní signál o požadovaném kmitočtu.
Popis registrů
Bity 7:6 — COM2A1:0: Compare Match Output A Mode.
Tyto bity ovládají chování Output Compare pinu (OC2A).
Tabulka 40.22. Compare Output Mode, non-PWM Mode
COM2A1 | COM2A0 | popis |
---|---|---|
0 | 0 | normální funkce portu, OC0A odpojeno |
0 | 1 | změn OC2A při shodě srovnání Compare Match |
1 | 0 | smaž (Clear) OC2A při shodě srovnání |
1 | 1 | nastave (Set) OC2A při shodě srovnání |
Bity 5:4 — COM2B1:0: Compare Match Output B Mode
Stejné možnosti jako při nastavování COM2A1:0.
Následující tabulka popisuje jednotlívé mody čítače podle nastavení bitů WGM1 a WGM0 v registru TCCR2A a bitu WGM2 v registru TCCR2B.
Tabulka 40.25. Waveform Generation Mode Bit Description
mód | WGM2 | WGM1 | WGM0 | operace | TOP | update of OCRx at | TOV Flag Set on |
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | Normal | 0xFF | ihned | 0xFF |
1 | 0 | 0 | 1 | PWM, Phase Correct | 0xFF | TOP | 0x00 |
2 | 0 | 1 | 0 | CTC | OCRA | ihned | 0xFF |
Následují podrobnější popisy jednotlivých módů čítače.
V režimu vymazání čítače při shodě s OCR2A registrem (WGM22:0 = 2), určuje registr OCR2A rozlišení čítače. V tomto módu je nastaven čítač na 0, dosáhne li TCNT2 hodnoty v registru OCR2A. OCR2A tedy definuje horní hodnotu čítače. Hodnota čítače TCNT2 se tedy pohhybuje v rozsahu od 0 do OCR2A v četně.
V tomto módu může být povoleno a generováno přerušení TOV1, ...
Druhý ze dvojce registrů ovládajících chování čítače/časovače Timer2.
Je-li tento bit nastaven na 1, je vybrán asynchronní externí hodinový signál. Tento signál musí být přiveden na pin TOSC1 obvodu. Je-li tento bit nastaven na 0, pak je nastartován vnitřní krystalový oscilátor 32kHz a tento je použit jako hodinový signál.
Vnitřní krystalový oscilátor 32kHz beží jen, je-li tento bit 0. V obvodech ATmega328P je tento oscilátor velmi nepřesný. Pokud chcete více, nahlédněte do poslední revize datasheetu.
Je-li tento bit 0, Čítač čítá z vnitřního signálu clkI/O. Je-li tento bit 1, čítač čítá z krystalového oscilátoru připojeného na vývod TOSC1. Při změně hodnoty bitu AS2 může být poškozen obsah registrů TCNT2, OCR2A, OCR2B, TCCR2A a TCCR2B.
AS2 bit vybírá, jestli je do desetibitové předděličky jako signál clkT2S pouštěn clkI/O (AS2=0) nebo TOSC1 (AS2=1).