Курсовая работа: Устройство управления системой измерения веса
3.2.1 Инициализация таймера/счетчика0
8-разрядный таймер/счетчик может получать импульсы тактовой частоты – СК с предварительного делителя (СК/8, СК/64, СК/8256, СК/1024), импульсы с внешнего вывода или быть остановлен соответствующими установками регистра TCCR0. Флаг переполнения таймера находится в регистре TIFR. Разрешение и запрещение прерываний от таймера управляется регистром TIMSK.
SREG – регистр состояния
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
I | T | H | S | V | N | Z | C |
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Рис 3.2 - регистр состояния SREG
I – общее разрешение прерываний, 1 – разрешено.
Т – хранение копируемого бита.
Н – флаг половинного переноса.
S – бит знака.
V – флаг переполнения дополнения до двух.
N – флаг отрицательного результата.
Z – флаг нулевого результата.
C – флаг переноса.
TCCR0 - данный регистр служит для управления частотой и источником тактовых импульсов таймера (см. таблицу)
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
- | - | - | - | - | CS02 | CS01 | CS00 |
R | R | R | R | R | R/W | R/W | R/W |
Рис. 3.3 – Регистр управления таймером/счетчиком0 TCCR0
Биты 7…3 зарезервированы и всегда читаются как 0.
Биты 2, 1, 0 – выбор коэффициента деления предварительного делителя.
CS02 | CS01 | CS00 | Значение |
0 | 0 | 0 | Стоп |
0 | 0 | 1 | СК |
0 | 1 | 0 | СК/8 |
0 | 1 | 1 | СК/64 |
1 | 0 | 0 | СК/256 |
1 | 0 | 1 | СК/1024 |
1 | 1 | 0 | Вн. Сигнал Т0, нар. фронт |
1 | 1 | 1 | Вн. Сигнал Т0, спад. фронт |
Рис. 3.4–Выбор коэффициента деления предварительного делителя.
TCNT0 – данный регистр служит для загрузки и считывания показаний счетчика/таймера0.
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
MSB | LSB | ||||||
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Рис. 3.5 – регистр текущего значения счетчика TCNT0
TIMSK – данный регистр служит для установки и сброса флагов разрешения работы прерываний таймеров.
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
OCIE2 | TOIE2 | TICIE1 | OCIE1A | OCIE1B | TOIE1 | OCIE0 | TOIE0 |
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Рис. 3.6 – регистр масок прерываний таймеров
TOIE1 – разрешение прерывания по переполнению таймера/счетчика 0
OCIE1A - разрешение прерывания по совпадению таймера/счетчика 1
TIFR - данный регистр содержит флаги прерываний таймеров
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
OCF2 | TOV2 | ICF1 | OCF1A | OCF1B | TOV1 | OCF0 | TOV0 |
R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Рис. 3.7 – регистр флагов прерываний таймеров.
TOV1 – флаг переполнения таймера/счетчика 0. 1 – произошло переполнение
OCF1A – флаг выхода совпадения 1А. 1 – произошло совпадение значения таймера/счетчика 1 и данных в регистре OCR1A.
3.2.2 Инициализациятаймера/счетчика1
16-разрядный таймер/счетчик может получать импульсы тактовой частоты – СК с предварительного делителя (СК/8, СК/64, СК/8256, СК/1024), импульсы с внешнего вывода или быть остановлен соответствующими установками регистра TCCR1B. Флаги состояния таймера (переполнения, совпадения и захвата) и управляющие сигналы находятся в регистре TIFR. Разрешение и запрещение прерываний от таймера управляется регистром TIMSK.