Смекни!
smekni.com

Методические указания к лабораторным работам со стендом (стр. 6 из 9)

Бит 2 - TOV1: Флаг переполнения таймера/счетчика 1: Флаг TOV1 устанавливается ("1") при возникновении переполнения таймера/счетчика 1. Флаг TOV1 сбрасывается аппаратно при выполнении соответствующего вектора обработки прерывания. Кроме того, флаг можно сбросить, записав в него логическую единицу. Если установлены бит I в SREG и бит TOIE1 в TIMSK, при установке бита TOV1 выполняется прерывание по переполнению таймера/счетчика 1. В режиме ШИМ этот бит устанавливается, когда таймер/счетчик 1 изменяет направление счета при значении $0000.

Бит 1 - OCF0: Флаг выхода совпадения T/C0: флаг устанавливается в "1" если происходит совпадение значения таймера/счетчика 2 и данных в регистре OCR. Флаг очищается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно сбросить записав в него логическую единицу. Если установлены бит I в SREG и бит OCIE0 в TIMSK, при установке бита OCF0 выполняется прерывание.

Бит 0 - TOV0: Флаг переполнения таймера счетчика 1: Флаг TOV0 устанавливается ("1") при переполнении таймера/счетчика 0. Флаг сбрасывается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно очистить записав в него логическую единицу. Если установлены бит I в SREG и бит TOIE0 в TIMSK, при установке бита TOV0 выполняется прерывание по переполнению таймера/счетчика 0.

ВНЕШНИЕ ПРЕРЫВАНИЯ

Внешние прерывания управляются выводами INT0, INT1 и INT2. Заметим, что прерывания обрабатываются даже, когда выводы сконфигурированы как выходы. Это позволяет генерировать программные прерывания. Внешние прерывания могут возникать по спадающему или нарастающему фронту, а также по низкому уровню. Это устанавливается в регистре управления процессором MCUCR. Если внешние прерывания разрешены и сконфигурированы на отработку по уровню, прерывание будет вырабатываться до тех пор, пока вывод удерживается в низком состоянии.

Управление работой внешних прерываний рассмотрено при описании регистра управления процессором MCUCR.

ВРЕМЯ РЕАКЦИИ НА ПРЕРЫВАНИЕ

Минимальное время реакции на любое из предусмотренных в процессо­ре прерываний - 4 периода тактовой частоты. После четырех циклов вы­зывается программный вектор, обрабатывающий данное прерывание. За эти 4 цикла программный счетчик (9 бит) записывается в стек, указатель стека уменьшается на 2. Программный вектор представляет собой относительный переход на подпрограмму обслу­живания прерывания, и этот переход занимает 2 периода тактовой частоты. Если прерывание происходит во время выполнения команды, длящейся неско­лько циклов, перед вызовом прерывания завершается выполнение этой команды.

Выход из программы обслуживания прерывания занимает 4 периода так­товой частоты. За эти 4 периода из стека восстанавливается программный счетчик. После выхода из прерывания процессор всегда выполняет еще од­ну команду, прежде чем обслужить любое отложенное прерывание.

Заметим, что регистр состояния SREG аппаратно не обрабатывается процессором, как при вызове подпрограмм, так и при обслуживании преры­ваний. Если программа требует сохранения SREG, то это должно произво­диться программой пользователя.

ТАЙМЕР/СЧЕТЧИК 0

Таймер-счетчик 0 - модуль многофункционального одноканального 8-разрядного таймера-счетчика.

Основные отличительные особенности:

  • Одноканальный счетчик
  • Опциональный режим сброса таймера при совпадении (автоматическая перезагрузка)
  • Широтно-импульсная модуляция без генерации ложных импульсов при записи нового порога сравнения в OCR0 (двойная буферизация) и с фазовой коррекцией
  • Генератор частоты
  • 10-разрядный предделитель тактовой частоты
  • Генерация прерываний по переполнению и выполнения условия сравнения (TOV0 и OCF0)
  • Счетчик внешних событий

Введение

Функциональная схема 8-разр. таймера-счетчика представлена на рис. 5. Для уточнения расположения выводов см. "Расположение выводов". Связи с регистрами, к которым осуществляет доступ ЦПУ, в т.ч. биты ввода-вывода и линии ввода-вывода показаны жирной линией. Специфические для данного устройства регистры, расположение и назначение его бит приведены в "Описание регистров 8-разр. таймера-счетчика 0".


Рисунок11. Функциональная схема 8-разр. таймера-счетчика 0

Описание регистров 8-разрядного таймера-счетчика 0

Регистр управления таймером-счетчиком 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

Разряд 7 - FOC0: Принудительная установка результата сравнения

Строб FOC0 не генерирует каких-либо прерываний, а также не вызывает сброс таймера в режиме СТС, где регистр OCR0 задает верхний предел счета.

Бит FOC0 всегда считывается как 0.

Разряд 6, 3 - WGM01:0: Режим работы таймера-счетчика 0

Данные биты определяют: алгоритм счета счетчика, источник, который задает верхний предел счета и тип генерируемых прямоугольных импульсов.

Таблица 6. Описание бит, задающих режим работы таймера-счетчика 0

Номер режима WGM01 WGM00 Наименование режима работы таймера-счетчика 0 Верхний предел счета Условие обновления содержимого регистра OCR0 Условие установки флага TOV0

0

0

0

Нормальный 0xFF Сразу после записи в регистр Достижение максимального значения (0xFF)

1

0

1

ШИМ с фазовой коррекцией 0xFF Достижение верхнего предела счета Достижение минимального значения (0x00)

2

1

0

Сброс при совпадении OCR0 Сразу после записи в регистр Достижение максимального значения (0xFF)

3

1

1

Быстрый ШИМ 0xFF Достижение верхнего предела счета Достижение максимального значения (0xFF)

Разряд 5:4 - COM01, COM00: Режим формирования выходного сигнала

Данные биты определяют алгоритм изменения сигнала на выводе OC0.

Таблица 7. Режимы формирования выходного сигнала

в режимах работы таймера 0 без ШИМ

COM01 COM00 Описание

0

0

Функция обычного порта ввода-вывода. OC0 отключен.

0

1

Переключение (инвертирование) OC0 при каждом совпадении

1

0

Сброс OC0 при каждом совпадении

1

1

Установка OC0 при каждом совпадении

В таблице 9 приведено назначение бит COM01, COM00 для режима работы таймера-счетчика 0 с быстрой ШИМ (WGM01:0).

Таблица 8. Режимы формирования выходного

сигнала в режиме таймера 0 с быстрым ШИМ(1)

COM01 COM00 Описание

0

0

Функция обычного порта ввода-вывода. OC0 отключен.

0

1

Зарезервировано

1

0

Сброс OC0 при совпадении, установка по достижении верхнего предела (0xFF)

1

1

Установка OC0 при совпадении, сброс по достижении верхнего предела (0xFF)

Прим. 1: Имеется особый случай, когда OCR0 = 0xFF и COM01=1. В этом случае возникновение совпадения игнорируется, но сброс или установка по достижении верхнего предела выполняется. См. "Режим быстрой ШИМ".

В таблице 55 приведено действие бит COM01, COM00 для режима ШИМ с фазовой коррекцией, заданного с помощью бит WGM01, WGM00.

Таблица 9. Режимы формирования выходного сигнала в режиме ШИМ с фазовой коррекцией(1)

COM01 COM00 Описание

0

0

Функция обычного порта ввода-вывода. OC0 отключен.

0

1

Зарезервировано

1

0

Сброс OC0 при совпадении во время прямого счета. Установка OC0 при совпадении во время обратного счета.

1

1

Установка OC0 при совпадении во время прямого счета. Сброс OC0 при совпадении во время обратного счета.

Прим. 1: Существует особый случай, когда OCR0=0xFF/0x00 и COM01=1. В этом случае OC0 всегда находится на постоянном логическом уровне 0 или 1, т.к. 0xFF и 0x00 -точки изменения направления счета и возникающее на них совпадение зачитывается только к одному из направлений счета: обратному или прямому (см. также "Режим ШИМ с фазовой коррекцией").

Разряд 2:0 - CS02:0: Настройка частоты синхронизации таймера

С помощью трех настроечных бит имеется возможность выбрать различные тактовые частоты, кратные исходной частоте синхронизации (см. табл. 56).

Таблица 10. Выбор частоты синхронизации таймера 0

CS02 CS01 CS00 Описание

0

0

0

Нет синхронизации. Таймер-счетчик 0 оставлен.

0

0

1

clkT0S/1 (без предделения)

0

1

0

clkT0S/8 (с предделением)

0

1

1

clkT0S/32 (с предделением)

1

0

0

clkT0S/64 (с предделением)

1

0

1

clkT0S/128 (с предделением)

1

1

0

clkT0S/256 (с предделением)

1

1

1

clkT0S/1024 (с предделением)

Регистр таймера-счетчика - TCNT0