Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007) (1264222), страница 17
Текст из файла (страница 17)
Первый таймер (8-разряд|гый ТО), имеющийся во всех моделях, может использоваться для отсчета и измерения временных интервалов или как счетчик внешних событий, а в модели АТше8а8515 еще и для сравнения с заданным значением. При переполнении счетного регистра таймера генерируется запрос на прерывание.
Два других таймера (16-разрядный Т! и 8-разрядный Т2) кроме уже названных имеют дополнительные функции. Оба таймера могут генерировать запрос на прерывание не только при переполнении счетного регистра, но и при наступлении ряда других событий. Они могут также использоваться в качестве широтно- импульсных модуляторов. Кроме того„таймер Т2 может работать в асинхронном (относительно тактового сигнала микроконтроллера) режиме. Работа таймеров, используемых в практикуме микрокоптроллеров АТх8515, описана далее.
Каждый таймер/счетчик использует один или более выводов микроконтроллера. Эти выводы могут быть либо линиями портов ввода/вывода с альтернативной функцией, либо выделенными выводами микроконтроллера. Все выводы микроконтроллеров АТх8515, относящиеся к таймерам/счетчикам, и их функции приведены в табл. 4.1. Таблица 4.1. Выводы, используемые таймерами/счетчиками общего назначения 106 3. Арифметическая обработка даняыл 9.
Нарисовать схему алгоритма алгебраического сложения-вычитания чисел с плавающей точкой в дополнительных кодах. Дать оценку сложности разработанного алгоритма путем сравнения с описанным. Написать программу и проверить ее работу с помощью отладчика. 4. ТАЙМЕРЫ МИКРОКОНТРОЛЛЕРОВ АТх8515 Цель работы — изучение основных режимов работы таймеров и их программирование, анализ схем включения таймеров для проведения исследований.
Микроконтроллеры АЧК в зависимости от класса (Т1пу, С!азз1с, Мейа) и типа модели имеют в своем составе от одного до трех таймеров/счетчиков общего назначения — ТО, Т! и Т2. Первый таймер ~8-разрядный ТО), имеющийся во всех моделях, может использоваться для отсчета и измерения временных интервалов или как счетчик внешних событий, а в модели АТщсйа8515 еще и для сравнения с заданным значением. При переполнении счетного регистра таймера генерируется запрос на прерывание.
Два других таймера (16-разрядный Т1 и 8-разрядиый Т2) кроме уже названных имеют дополнительные функции. Оба таймера могут генерировать запрос на прерывание не только при переполнении счетного регистра, но и при наступлении ряда других событий. Они могут также использоваться в качестве широтнои импульсных модуляторов. Кроме того, таймер Т2 может работать в асинхронном (относительно тактового сигнала микроконтроллера) режиме. Работа таймеров, используемых в практикуме микроконтроллеров АТх8515, описана далее. Каждый таймер/счетчик использует один или более выводов микроконтроллера.
Эти выводы могут быть либо линиями портов ввода/вывода с альтернативной функцией, либо выделенными выводами микроконтроллера. Все выводы микроконтроллеров АТх8515, относящиеся к таймерам/счетчикам, и их функции приведены в табл. 4.1. Таблица 4./. Выводы, используемые таймерами/счегчиками общего назначения 108 Окончание табл. 4.1 Зпр Т/СО ОАПЕК 4. Таймеры микроконтроллеров А Тл8515 * В микроконтроллере АТ9088515 — выделенный вывод, в АТтеяа8515 — выпад порта РЕ.
При использовании линий портов ввода/вывода необходимо сконфигурировать выводы в соответствии с их функциональным назначением (вход или выход). Во всех микроконтроллерах семейства АУК имеется также сторожевой таймер, который является непременным атрибутом всех современных микроконтроллеров. Этот таймер используется для предотвращения зацикливания программы. 4.1. ТАЙМЕР/СЧЕТЧИК ТО МИКРОКОНТРОЛ ЧЕРА АТ9088515 Таймер/счетчик ТО (8-разрядный) может использоваться для формирования временных интервалов или для подсчета числа внешних событий. Структурная схема таймера/счетчика ТО микроконтроллера АТ9088515 приведена на рис. 4.1. Таймер содержит базовый счетчик ТС)х)ТО, регистр управления ТССКО и схему управления.
Кроме того, в его состав входят по одному разряду регистра запросов прерываний Т1РК и маски прерываний Т1МВК. Счетчик ТСЫТО доступен в любой момент времени как для чтения, так и для записи. При записи в счетчик ТС)ч)ТО во время его работы счет будет продолжен в следуюшсм за командой записи машинном цикле. После подачи напряжения питания счетчик ТСХТО принимает нулевое состояние. При переходе таймера/счетчика ТС)ч)ТО из состояния 3ГР в состояние $00 устанавливается в 1 флаг ТОУО в регистре Т1РК и генерируется запрос па прерывание.
Разрешение прерывания осуществляется установкой в 1 разряда Т01ЕО регистра маски Т1М8К. Флаг общего разрешения прерывания 1 регистра 8КЕО микроконтроллера также должен быть установлен в 1. 4.1. Таймер!счетчик ТО микроконтроллера АТ9088515 109 Рис. 4.1. Структурная схема таймера/счетчика ТО Таймер/счетчик ТО может работать в двух режимах: 1) таймера; в этом режиме на вход поступают импульсы тактового сигнала микроконтроллера СК (непосредственно или через предделитель схемы управления); 2) счетчика событий; в этом режиме инкремент содержимого счетчика производится по активному фронту сигнала на входе ТО микроконтроллера (линия порта РВО). Выбор режима работы (источника тактового сигнала), а также запуск и останов таймера/счетчика осуществляются с помощью разрядов СБ02 — СБОО регистра управления таймером ТССКО (табл.
4.2). Соответствие между состоянием этих разрядов и режимом работы таймера/счетчика приведено в табл. 4.3. Остальные разряды регистра доступны только для чтения и содержат О. Таблица 4.2. Формат Регистра ТССКО 11О Источник тактового сигнала С$02 СЯ01 СЯОО Запросы прерываний 4. Таймеры микроконтроллеров АТх85!5 Таблииа 4.3. Выбор источника тактового сигнала для таймера/счетчика ТО Таймер/счетчик остановлен СК (тактовый сигнал микроконтроллера) СК/8 СК/64 СК/256 СК/1024 Вывод ТО, инкремент счетчика производится по спадающему фронту импульсов Вывод ТО, инкремеит счетчика производится по нарастающему фронту импульсов При использовании таймера/счетчика в режиме счета внешних событий необходимо помнить, что сигнал, присутствующий на выводе ТО, синхронизируется частотой тактового генератора микроконтроллера (состояние вывода ТО считывается по нарастающему фронту внутреннего тактового сигнала).
В связи с этим для обеспечения корректной работы таймера от внешнего сигнала промежуток времени между соседними импульсами должен быть больше периода тактового сигнала микроконтроллера. Инкремент содержимого таймера/счетчика при работе в режиме счета внешних событий производится даже в том случае, если вывод ТО сконфигурирован как выход. Эта особенность дает пользователю возможность программно управлять процессом счета.
4.2. ТАЙМЕР/СЧЕТЧИК Т1 МИКРОКОНТРОЛЛЕРОВ АТх8515 Таймер/счетчик Т! (16-разрядный) имеет гораздо больше функций, чем таймер/счетчик ТО. Прежде всего, как и таймер/счетчик ТО, он может использоваться для формирования временных интервалов или для подсчета числа внешних событий по входу Т! !линия порта РВ1). Во-вторых, таймер/счетчик Т1 может по внешнему сигналу сохранять свое текущее состояние в отдельном регистре ввода/вывода.
В-третьих, он может выполнять определенные действия при равенстве содержимого счетного регистра и заданного значения. И, наконец, он может работать как широтно- импульсный модулятор !ШИМ). Следует иметь в виду, что гене- 4.2. Тайиер/счетчик Т! микроконтроллеров АТх85!5 111 рация сигнала ШИМа вынесена в отдельный режим работы таймера/счетчика, в котором недоступны остальные функции !кроме генерации прерываний), В дальнейшем режим генерации сигнала ШИМа будем называть режимом ШИМа, а режим, в котором доступны остальные функции таймера/счетчика, — режимом таймера. Структурная схема таймера'счетчика Т1 приведена на рис.
4.2. В состав таймера/счетчика входят базовый 16-разрядный счетчик ТАТ!, три 16-разрядных регистра (регистр захвата 1СК1 и два Рис. 4.2. Структурная схема таймера/счетчика Т1 регистра сравнения ОСК1А и ОСК1В), два 16-разрядных компаратора (схемы сравнения), два 8-разрядных управляющих регистра ТССК! А и ТССК1В, а также блок управления таймером. Все флаги состояния таймера/счетчика !переполнения, совпадения и захвата) находятся в регистре флагов прерываний от таймеров Т!ГК, а разрешение (запрещение) прерываний от таймера 112 4. Таймеры микракаитраллера в А Тх8515 4.2.
Таймер/счетчик Т1 микроконтроллеров АТх85!5 ! !3 осуществляется установкой (сбросом) соответствующих разрядов регистра маски Т1МБК. Базовый 16-разрядный счетчик ТСХТ! реализован как суммирующий (в режиме ШИМа — как суммирующий-вычитающий) счетчик и доступен в любой момент времени как для чтения, так и для записи.
При записи в счетчик ТСХТ! во время работы таймера счет будет продолжен по следующему за операцией записи импульсу тактового сигнала таймера/счетчика. После подачи напряжения питания счетчик ТСХТ1 принимает пулевое состояние. Физически счетчик ТСХТ1 размещен в двух регистрах ТСХТ1Н:ТСХТ1Ь. Чтобы при обращении процессорного устройства микроконтроллера к этим регистрам процесс записи (чтения) обоих байтов содержимого таймера/счетчика происходил одновременно, обращение производится с использованием специального 8-разрядного регистра ТЕМР.