Регистр флагов прерываний таймеров-счетчиков – TIFR
Разряд | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
OCF2 | TOV2 | ICF1 | OCF1A | OCF1B | TOV1 | OCF0 | TOF0 | TIFR | |
Чтение/запись | Чт./Зп. | Чт./Зп. | Чт./Зп. | Чт./Зп. | Чт./Зп. | Чт./Зп. | Чт./Зп. | Чт./Зп. | |
Исх. значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Прим.: Биты данного регистра относятся к нескольким таймерам, но в данном параграфе рассматриваются биты только одного таймера. Описание остальных бит необходимо смотреть в соответствующих разделах.
Разряд 5 – ICF1: Флаг захвата состояния таймера-счетчика 1
Флаг устанавливается, если на входе ICP1 определяется условие захвата. Если регистр захвата ICR1 выбран с помощью бит WGMn3:0 в качестве источника верхнего предела счета, флаг ICF1 устанавливается по достижении верхнего предела счета.
ICF1 автоматически сбрасывается при переходе на вектор прерывания по захвату состояния таймера-счетчика. Альтернативно флаг ICF1 можно сбрасывать путем записи в него лог. 1.
Разряд 4 – OCF1A: Флаг результата сравнения канала А таймера-счетчика 1
Данный флаг устанавливается следующим тактом после совпадения значения TCNT1 с регистром А порога сравнения (OCR1A).
Обратите внимание, что строб принудительной установки результата сравнения (FOC1A) не устанавливает флаг OCF1A. Флаг OCF1A автоматически сбрасывается при переходе на соответствующий вектор прерывания.
Альтернативно, флаг OCF1A сбрасывается путем записи в него лог. 1.
Разряд 3 – OCF1B: Флаг результата сравнения канала B таймера-счетчика 1
Данный флаг действует аналогично предыдущему, но в отношении канала сравнения В.
Разряд 2 – TOV1: Флаг переполнения таймера-счетчика 1
Установка данного флага зависит от значений бит WGMn3:0. В нормальном режиме и режиме СТС флаг TOV1 устанавливается при переполнении таймера-счетчика. См. табл. 61 для изучения поведения флага TOV1 при задании других значений WGMn3:0. Флаг TOV1 автоматически сбрасывается при переходе на вектор прерывания по переполнению таймера-счетчика 1. Альтернативно флаг TOV1 сбрасывается путем записи в него лог. 1.
Пример программы на ассемблере, использующей таймер/счетчик 1
.include "m16def.inc"
.def Temp = r17
.def TemH = r20
.def TemL = r19
.cseg
.org $0
rjmp start
.org $10
rjmp tim
; ****обработка по прерыванию****
Tim:
Out PORTB, Temp
inc temp
call init
reti
; ****Задаем "счет" для таймера1 = 1сек.****
init:
cli
ldi TemH, 0b11000111
out TCNT1H, TemH
ldi TemL, 0b00000100
out TCNT1L, TemL
ret
; ****Начало главной программы****
start:
; ***инициализируем стек***
ldi TemH,high(RAMEND) ; Main program start
out SPH,TemH ; Set Stack Pointer to top of RAM
ldi TemL,low(RAMEND)
out SPL,TemL
cli
ser temp
out DDRB, temp ; set portB to output
clr temp
; ****считываем данные с порта "D" ****
Begin:
out PORTB, temp
in TemH, pind
com TemH
eor temp, TemH
clr TemH
dly:
dec TemH
brne dly
dec TemL
brne dly
sbrs temp,0x07
rjmp Begin
; ****настариваем таймер1 ( /64 /TOV1)
call init
ldi TemH, 0b00000100
out TIMSK, TemH
sei
ldi TemL, 0b00000011
out TCCR1b, TemL
loop:
cpi temp,0b00000001
breq start
rjmp loop
Индивидуальные задания
Порядок выполнения лабораторной работы.
5. Загрузить программу в стенд STK500. Убедиться в правильном выполнении индивидуального задания, при отрицательном результате осуществить изменение алгоритма либо программы. Повторить загрузку
программы в стенд ОЭВМ
Контрольные вопросы:
1. Структура системы прерывания ATmega16.
2. Назначение, примеры применения системы прерывания.
3. Регистры управления, распределение памяти в ATmega16.
4. Прерывание от таймеров, последовательного приемопередатчика
5. Аппаратное устранение дребезга контактов для схем с TTL и КМОП.
6. Программное устранение дребезга контактов.
7. Необходимость применения аппаратного либо программного устранения дребезга контактов.
8. Методы и типы частотного и временного преобразования.
9. Параметры частотного преобразования.
10. Факторы, влияющие на погрешность частотного преобразования.
11. Понятие разрешающая способность частотного преобразования.
12. Измерение периода.
13. Характеристика преобразования, нелинейность частотного преобразования.
14. Аппаратные реализации частотного и временного преобразования.
15. Примеры практического применения частотного и временного преобразования.