Čítače a časovače II

Vlastnosti



Úvodem k čítači / časovači

    Stejně tak jako čítač / časovač 0 měl svůj registr TCNT0 má i čítač / časovač 1 registr TCNT1. Tento regstr je však 16bitový a tak je rozdělen na dva samostatné osmibitové registry. Jako alternativa k registru OCR0  časovače 0 je u tohoto časovače / čítače OCR1A a OCR1B, jedná se tedy opět samozřejmě o 16bitové registry jednotky Output Compare.
    Stejně jako čítač / časovač 0 i čítač / časovač 2 má registry pro řízení jeho chodu. Zde se jedná o dva registry a to TCCR1A a TCCR1B.
    Dalším zvláštním registrem je ICR1, kam se ukládá aktuální hodnota číttače / časovače při vzniku vnější události na pinu ICP1 nebo obodu analogového komparátoru.

Práce s registry

Jak si jistě uvedomujete, 16bitový registr musíme nějak naplnit nebo přečítst. K tomu slouží osmibitové regstry, které je zastupují. Jsou to dočastné registry, protože mají v každé fázi zápisu jiný význam. Proto musí nejprve proběhnout zápis horního bajtu a poté spodního bajtu. U čtení je tomu naopak. Nejprve čteme spodní bajt a poté horní.

Jednotka Input Capture

Jednotk Input Capture, jak už bylo uvedeno v předchozím textu slouží pro zachycení obsahu registru TCNT1 v případě, že nastave vnější událost na pinu ICP1 nebo na výstupu analogového komparátoru. Dá se takto jednoduše realizovat například čítač.

Output Capture

Tuto jednotku známe již z předchozího dílu.  Zde však v této funkci pracuje 16bitový komparátor. Navíc zde není pouze jeden srovnávací registr, ale hned dva. OCR1A a OCR1B. Shoda je signalizována obvyklým způsobem. (přes flag, případně vznikem přeušení).

Režimy čítače / časovače 1

Normální režim
Je zvolen v případě je WGM = 0.
V tomto přípdě se čítá směrem nahoru. Čítač nemá vrchol a dochází pouze k přetečení, kdy začne od nuly. Příznak přetečení je nastaven při vynulování čítače.

CTC režim
CTC režim neboli v překladu Clear Timer on Compare Match je zvolen v případě že, WGM = 4 nebo když WGM  = 12. Při CTC čítá obvod do OCR1A, nebo v případě že WGM = 12, čítá až do vzniku vnější událost na ICR1.

Rychlý PWM režim
Režim platí pro WGM = 5,6,7,14,15.V tomto režimu je generována PWM s velmi vysokou rychlostí. Čítač v tomto případě čítá ode dna do maximální hodnoty a poté se nastavuje zpět na hodnotu dna. Dle režimu je vývod OC1A/OC1B nastaven nebo vynulován a při shodě s OCR1A/OCR1B je signál invertován.

Ostatní režimy
Mezi další režimy patří ještě Fázově korigovaný PWM režim a Fázově a kmitočtově korigovaný PWM režim. Tyto režimy si probereme v některém z dalších dílu v praktické aplikaci. Bližší infomace můžete najít v katalogovém listu.

Registry čítače / časovače 1

TCCR1A


COMA(B)1, COMA(B)0 - řídí režim vývodů OC1A(B).  Viz následujícího pravidla:
0      0      čítač / časovač je odpojen od OC
0      1      negace vývodu při shodě
1      0      nulování při shodě
1      1      nastavení při shodě

FOC1A(B) - vynucení výstupu OC1A(B)
WGM11, WGM10
- řídí čítanou sekvenci, volí maximání čítanou hodnotu a typ generovaného průběhu

TCCR1B


ICNC1 - aktivace potlačení šumu.(vzorkuje ve čtyřech po sobě jdoucích intervalech)
ICES1 - výběr hrany pro Input Capture
WGM13, WGM12
- viz TCCR1A
CS12, SC11, CS10 - výběr hodin

Vliv bitů WGM a CS na nastavení čítače /  časovače si můžete nastudovat v katalogovém listu nebo v tomto PDF souboru.

Ostatní registry jsme si již probrali v minulém díle a proto je zde nebudu popisovat.

Na závěr dnešního dílu uvedu příklad využití čítače / časovače 0. Po menších úpravách by samozřejmě bylo možné využít i čítače / časovače 1. Jedná se o příklad, kde je využito přerušení. O tom co to je si povíme příště, spolu s dalším příkladem. Uvedený příklad zajistí blikání LED v pravidelných intervalech, přičemž, procesor může v době mezi změnami vykonávat i jiné instrukce. V tom je rozdíl oproti metodě se spožďováním (bržděním) programu.

Komentovat článek

Jméno:  
Zpráva:

Komentáře k článku

článek zatím nikdo nekomentoval