Вы находитесь на странице: 1из 11

Лабораторная 5.

Таймеры-
счетчики. Прерывания.
Таймер-счетчик 0.
Внутренняя организация AVR-контроллеров
Таймеры/счетчики Atmega32
ATmega32 оснащен тремя таймерами/счетчиками общего назначения: два
8-разрядных и один 16-разрядный. Таймеры/счетчики 0 и 1 используют общий
10-разрядный предварительный делитель опорной частоты. Таймер/счетчик 2
оснащен своим собственным предварительным делителем. Эти
таймеры/счетчики можно использовать как таймеры со встроенной временной
базой или как счетчик, переключаемый по состоянию на внешнем выводе.

Таймер/счетчик 2, дополнительно может тактироваться асинхронно от


внешнего генератора. Этот генератор оптимизирован под использование
кварцевого кристалла на частоту 32.768 кГц, что позволяет использовать
таймер/счетчик 2 как часы реального времени (RealTimeClock-RTC).
8-разрядный таймер/счетчик 0 (T/C0)
Для Т/С0 источником тактирования могут быть избраны CK, масштабированный СК или СК от внешнего
вывода. Установки управляющих сигналов хранятся в регистрах управления таймерами/счетчиками TCCR0.
Управляющий регистр таймером/счетчиком 0 (TCCR0)
Бит 7 6 5 4 3 2 1 0
FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00 TCCR0
Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп.
Нач. значение 0 0 0 0 0 0 0 0
Биты 2, 1, 0 – определяют источник тактирования T/C0
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, нарастающий фронт
8-разрядный таймер/счетчик 0 (T/C0)
Регистр маски прерывания таймеров/счетчиков
Бит 7 6 5 4(TIMSK) 3 2 1 0
OCIE2 TOIE2 TICIE1 OCIE1A OCIE1B TOIE1 OCIE0 TOIE0 TIMSK
Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп.
Нач. значение 0 0 0 0 0 0 0 0

OCIE0: Разрешение прерывание по сравнению (Timer/Counter0 Output Compare Match INTerrupt Enable)
TOIE0: Разрешение прерываний по переполнению счета (Timer/Counter0 Overflow INTerrupt Enable)

Регистр флагов таймеров/счетчиков (TIFR)


Бит 7 6 5 4 3 2 1 0
OCF2 TOV2 ICF1 OCF1A OCF1B TOV1 OCF0 TOV0 TIFR
Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп.
Нач. значение 0 0 0 0 0 0 0 0

OCF0: Флаг о совпадении при сравнении (Output Compare Flag)


TOV0: Флаг о переполнении (Timer/Counter0 Overflow Flag)
8-разрядный таймер/счетчик 0 (T/C0)
Т/С0 реализован как счетчик, считающий вверх, с доступом по чтению и записи. Если в таймер/счетчик
записано некоторое значение и выбран источник тактового сигнала, то он продолжит счет с записанного
значения с тактовой частотой счетчика.
Регистр данных таймера/счетчика 0 (TCNT0)
Бит 7 6 5 4 3 2 1 0
TCNT0[7:0] TCNT0
Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп.
Нач. значение 0 0 0 0 0 0 0 0

Регистр сравнения выхода таймера/счетчика 0 (OCR0)


Бит 7 6 5 4 3 2 1 0
OCR0[7:0] OCR0
Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп.
Нач. значение 0 0 0 0 0 0 0 0
Пример
Пример
Пример
Задание
Цель работы: изучить операции по работе с таймером/счетчиком 0, работа с подпрограммами,
выполнение обработки прерываний.
Модифицировать программу, полученную в результате выполнения лабораторной работы №2, используя
подпрограммы. Реализовать 2 режима управления светодиодом ШИМ и ЧИМ. Параметры
модулированного сигнала изменяются на каждом такте таймера. Изменение параметров сигнала
формируют пилообразный или треугольный сигнал в соответствии с вариантом.
При нажатии на кнопку Х осуществляется выбор режима:
1. Поочерёдно выводит данные из массива С на светодиодные индикаторы.
2. Запуск генерации ШИМ сигнала.
3. Запуск генерации ЧИМ сигнала.
Номер выбранного режима отображается на светодиодных индикаторах.
По нажатию на кнопку Y осуществляется запуск выбранного режима, при повторном нажатии
осуществляется остановка выбранного режима.
Обработка нажатия кнопок осуществляется по заданным внешним прерываниям. Каждый из режимов
выполняется в виде отдельной подпрограммы. Вывод массива С осуществляется по событиям от
таймера.
Forms Кнопка Х Кнопка Y ШИМ ЧИМ
1 INT0 INT1 Пилообразный Треугольный
2 INT1 INT0 Треугольный Пилообразный
3 INT0 INT1 Пилообразный Треугольный
4 INT1 INT0 Треугольный Пилообразный
5 INT0 INT1 Пилообразный Треугольный
6 INT1 INT0 Треугольный Пилообразный
7 INT0 INT1 Пилообразный Треугольный
8 INT1 INT0 Треугольный Пилообразный
9 INT0 INT1 Пилообразный Треугольный
10 INT1 INT0 Треугольный Пилообразный
11 INT0 INT1 Пилообразный Треугольный
12 INT1 INT0 Треугольный Пилообразный
13 INT0 INT1 Пилообразный Треугольный
14 INT1 INT0 Треугольный Пилообразный
15 INT0 INT1 Пилообразный Треугольный

Вам также может понравиться