40.2.12.1. 8-bit Čítač/Casovač2 s PWM a asynchronním fungováním

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ů

TCCR2A

Obrázek 40.8. TCCR2A — Timer/Counter Control register A

TCCR2A — Timer/Counter Control register A
  • 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

    COM2A1COM2A0popis
    00normální funkce portu, OC0A odpojeno
    01změn OC2A při shodě srovnání Compare Match
    10smaž (Clear) OC2A při shodě srovnání
    11nastave (Set) OC2A při shodě srovnání

    Tabulka 40.23. Compare Output Mode, Fast PWM Mode

    COM2A1COM2A0popis
    00normální funkce portu, OC0A odpojeno
    01WGM22=0: normální funkce portu, OC0A odpojeno. WGM22=1: změn (Toggle) OC2A při shodě srovnání Compare Match
    10smaž (Clear) OC2A při shodě srovnání
    11nastave (Set) OC2A při shodě srovnání

    Tabulka 40.24. Compare Output Mode, Phase Correct PWM Mode

    COM2A1COM2A0popis
    00normální funkce portu, OC2A odpojeno
    01WGM22=0: normální funkce portu, OC2A odpojeno. WGM22=1: změn (Toggle) OC2A při shodě srovnání Compare Match
    10smaž (Clear) OC2A při shodě srovnání
    11nastave (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ódWGM2WGM1WGM0operaceTOPupdate of OCRx atTOV Flag Set on
0000Normal0xFFihned0xFF
1001PWM, Phase Correct0xFFTOP0x00
2010CTCOCRAihned0xFF

Následují podrobnější popisy jednotlivých módů čítače.

Normal Mode
Nejjednodušší mód fungování (WGM22:0 = 0). V tomto módu se čítá jen nahoru (up, incrementing), a čítač není nikdy nulován. Při překročení maximální hodnoty 0xFF přirozeně přejde na 0x00.
Clear Timer on Compare Match (CTC) Mode

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, ...

TCCR2B

Druhý ze dvojce registrů ovládajících chování čítače/časovače Timer2.

Obrázek 40.9. TCCR2B — Timer/Counter Control register B

TCCR2B — Timer/Counter Control register B
TCNT2
TCNT2
OCR2A
OCR2B
TIMSK2
TIFR2
ASSR

Obrázek 40.10. ASSR — Asynchronous Status Register

ASSR — Asynchronous Status Register
Bit 7 — rezervován pro budoucí použití
Tento bit má při čtení vždy hodnotu 0.
Bit 6 — EXCLK: Enable External Clock Input, Povolení externího hodinového signálu

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.

Varování

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.

Bit 5 — AS2: Asynchronous Timer/Counter2, Asynchroní čítač/časovač 2

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).

Bit 4 — TCN2UB: Timer/Counter2 Update Busy
Bit 3 — OCR2AUB: Output Compare Register2 Update Busy
Bit 2 — OCR2BUB: Output Compare Register2 Update Busy
Bit 1 — TCR2AUB: Timer/Counter Control Register 2 Update Busy
Bit 0 — TCR2BUB: Timer/Counter Control Register 2 Update Busy
GTCCR — General Timer/Counter Control Register

Licence Creative Commons
Elektronika a počítače, jejímž autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .