Čítače a časovače II
Vlastnosti
- 16bitový čítač / časovač
- dvě jednotky OC
- CTC režim
- PWM (možná změna periody)
- čítač vnějších událostí
- 4 zdroje přerušení
Ú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.
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.

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žimJe 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
TCCR1ACOMA(B)1, COMA(B)0 - řídí režim vývodů OC1A(B). Viz následujícího pravidla:
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.
0 0 čítač / časovač je odpojen od OCFOC1A(B) - vynucení výstupu OC1A(B)
0 1 negace vývodu při shodě
1 0 nulování při shodě
1 1 nastavení při shodě
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
Komentáře k článku
článek zatím nikdo nekomentoval

