Skip to content
Snippets Groups Projects
Commit 0871b1ab authored by Isabella Skořepová's avatar Isabella Skořepová
Browse files

Odstraněn omylem publikovaný článek

parent 5c5215d6
No related branches found
No related tags found
No related merge requests found
Pipeline #
```
title = "Atmega328p: přerušení časovače"
perex = """
Pokud programujete microcontrollery z rodiny AVR tak přerušení jsou velmi užitečným
nástrojem. V tomto článku se pokusím vysvětlit jak fungují a nastíním příklady
pro čip Atmega328p.
"""
tags = ["Programování", "AVR"]
```
Pokud programujete microcontrollery z rodiny AVR tak přerušení jsou velmi užitečným
nástrojem. V následujících řádkách se pokusím vysvětlit jak fungují a nastíním
příklady pro čip Atmega328p.
## Co je časovač
V rodině microcontrollerů AVR je časovač vlastně čítač - periferie, která jednou
za definovaný časový interval zvýší hodnotu registru o 1. Další možností kromě
zvýšení po časovém intervalu je možnost zvýšení při signálu na určitém pinu, ale
to je mimo rozsah tohoto článku.
## Konfigurace časovače
Konfigurace časovače je poměrně jednoduchá - stačí ho povolit v jeho registru.
To se provádí pomocí `TCCR1B = (1 << CS10);`. Tento příkaz nastaví, že se do
registru `TCNT1` přičte 1 při každém hodinovém cyklu - tedy např 1 000 000x za sekundu
pokud máte frekvenci procesoru 1MHz.
Dají se nastavit i jiné hodnoty - těm se říká předdělička. Předdělička (prescaler)
funguje tak, že frekvenci procesoru vydělí danou hodnotou - tedy pokud je předdělička
8 a frekvence procesoru je 8MHz tak se přičte do čítacího registru (`TCNT1`)
přičte 1000 000x za sekundu.
Různá nastavení registru `TCCR1B` a odpovídající hodnoty předděličky ukazuje
následující tabulka (vycházející z [datasheetu][datasheet] strana 134)
| Nastavení registru | Předdělička |
|--------------------------------|-----------------------|
| 0 | Časovač je vypnut |
| (1 << CS10) | 1 (žádná předdělička) |
| (1 << CS11) | 8 |
| (1 << CS11) &#124; (1 << CS10) | 64 |
| (1 << CS12) | 256 |
| (1 << CS12) &#124; (1 << CS10) | 1024 |
[datasheet]: http://www.atmel.com/images/atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa-88a-88pa-168a-168pa-328-328p_datasheet_complete.pdf
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment