Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Основы работы с таймерами/счетчиками

Покупка
Основная коллекция
Артикул: 747177.01.99
Доступ онлайн
от 80 ₽
В корзину
В учебном пособии изложены сведения по работе с таймерами/счетчиками, описана работа модуля Таймеров/Счетчиков микроконтроллера Atmega32 компании Atmel, достаточно подробно, на примерах, разобрана работа с таймерами Т0 и Т2, оптическим энкодером, управлением электронным двигателем с помощью ШИМ-сигнала. Учебное пособие по дисциплине «Проектирование микроконтроллерных систем» предназначено для студентов, обучающихся по направлению 13.03.02 «Электроэнергетика и электротехника».
Основы работы с таймерами/счетчиками : учебное пособие / Д.О. Варламов, С.М. Зуев, Ю.М. Шматков, А.А. Лавриков, А.А. Тимошенко. — Москва : ИНФРА-М, 2020. — 64 с. — (Высшее образование: Бакалавриат). - ISBN 978-5-16-109356-6. - Текст : электронный. - URL: https://znanium.com/catalog/product/1232182 (дата обращения: 29.03.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Высшее образование — Бакалавриат

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ 

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ 

ВЫСШЕГО ОБРАЗОВАНИЯ 

«МОСКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» (МОСКОВСКИЙ ПОЛИТЕХ) 

Д.О. ВАРЛАМОВ
С.М. ЗУЕВ
Ю.М. ШМАТКОВ
А.А. ЛАВРИКОВ
А.А. ТИМОШЕНКО

ОСНОВЫ РАБОТЫ 

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

Учебное пособие

Москва

ИНФРА-М

2020

УДК 004.312(075.8)
ББК 32.85я73

В18

Рекомендовано к изданию на заседании кафедры

«Электрооборудование и промышленная электроника», 

протокол № 10 от 18.06.2019

Варламов Д.О.

В18
Основы работы с таймерами/счетчиками : учебное пособие / 

Д.О. Варламов, С.М. Зуев, Ю.М. Шматков, А.А. Лавриков, 
А.А. Тимошенко. — Москва : ИНФРА-М, 2020. — 64 с. — (Высшее 
образование: Бакалавриат).

ISBN 978-5-16-109356-6 (online)

В 
учебном 
пособии 
изложены 
сведения 
по 
работе 
с 

таймерами/счетчиками, описана работа модуля Таймеров/Счетчиков     
микроконтроллера Atmega32 компании Atmel, достаточно подробно, на 
примерах, разобрана работа с таймерами Т0 и Т2, оптическим 
энкодером, управлением электронным двигателем с помощью ШИМсигнала.

Учебное 
пособие 
по 
дисциплине 
«Проектирование 

микроконтроллерных 
систем» 
предназначено 
для 
студентов,

обучающихся 
по 
направлению
подготовки
13.03.02 

«Электроэнергетика и электротехника».

УДК 004.312(075.8)

ББК 32.85я73

ISBN 978-5-16-109356-6 (online)
© Варламов Д.О., Зуев С.М., 

Шматков Ю.М., Лавриков А.А., 
Тимошенко А.А., 2020

ФЗ 

№ 436-ФЗ 

Издание не подлежит маркировке 
в соответствии с п. 1 ч. 2 ст. 1 

 

Оглавление

1. Общие сведения ..................................................................................5

2. Назначение выводом таймеров/счетчиков.......................................6

3. Прерывания от таймеров/счетчиков .................................................7

4. Предделители таймеров/счетчиков...................................................9

5. Восьмибитные таймеры/счетчики...................................................13

6. Управление тактовым сигналом......................................................17

7. Режимы работы таймеров/счетчиков..............................................18

8. Формирование выходных сигналов 8-битных таймеров Т0 и Т2 в 
режиме работы Normal .........................................................................28

9. Формирование выходных сигналов 8-битных таймеров Т0 и Т2 в 
режиме работы СТС..............................................................................31

10. Формирование выходных сигналов таймеров/счетчиков Т0 и Т2 
в режимах работы Fast PWM и Phase Correct PWM..........................36

11. Использование прерываний по совпадению и переполнению 
таймера/счетчика Т0 .............................................................................41

12. Часы реального времени на таймере/счетчике Т2. .....................45

13. Измерение скорости вращения вала электродвигателя по 
оптическому энкодеру с использованием двух 8-битных 
таймеров/счетчиков ..............................................................................49

14. Измерение скорости вращения вала электродвигателя по 
оптическому энкодеру с использованием одного 8-битного 
таймера/счетчика и внешнего прерывания ........................................54

Заключение ............................................................................................60

Приложение ...........................................................................................61

Список использованной литературы ..................................................65

 

1. Общие сведения

Микроконтроллеры семейства в зависимости от модели имеют 

в своем составе от двух до шести таймеров/счетчиков общего 
назначения (Табл.1).

Таблица 1. Таймеры/счетчики общего назначения.

Как видно из таблицы, во всех моделях микроконтроллеров 

семейства присутствуют как минимум два таймера/счетчика — ТО 
и Т1. Таймер/счетчик ТО имеет минимальный набор функций, 
зависящий, тем не менее, от модели микроконтроллера. В одних 
моделях он может использоваться только для отсчета и измерения 
временных интервалов или как счетчик внешних событий. В других 
моделях к этим функциям добавляется возможность генерации 
сигналов 
с 
широтно-импульсной 
модуляцией 
(ШИМ) 

фиксированной разрядности (один или два канала), а также возможность работать в асинхронном режиме в качестве часов 
реального времени (в моделях ATmega64x/128x).

Таймер/счетчик Т1 тоже может использоваться для отсчета 

временных интервалов и как счетчик внешних событий. Кроме 
того, он может осуществлять запоминание своего состояния по 
внешнему сигналу. Как и таймер/счетчик ТО, он может работать в 
качестве 2- или 3-канального широтно-импульсного модулятора, но 
уже переменной разрядности. Количество каналов ШИМ зависит от 
модели [1].

Таймер/счетчик 
Т2 
практически 
полностью 
аналогичен 

таймеру/счетчику ТО. Во всех моделях, кроме ATmega64x/128x, 
таймер/счетчик Т2 может работать в асинхронном режиме.
Таймеры/счетчики ТЗ...Т5 по функциональным возможностям 
идентичны таймеру/счетчику T1.

В составе всех микроконтроллеров семейства имеется также 

сторожевой таймер, являющийся непременным атрибутом всех 
современных микроконтроллеров. Этот таймер позволяет избежать 
несанкционированного зацикливания программы, возникающего по 
тем или иным причинам.

2. Назначение выводов таймеров/счетчиков

Каждый таймер/счетчик использует один или более выводов 

микроконтроллера. Как правило, эти выводы — линии портов 
ввода/вывода общего назначения, а функции, реализуемые этими 
выводами при работе совместно с таймерами/счетчиками, являются 
их альтернативными функциями [2].

Все выводы микроконтроллера Atmega32, используемые 

таймерами/счетчиками общего назначения, приведены в Табл.2. 
Там же указаны функции этих выводов.

Таблица 2. Назначение выводов таймеров/счетчиков.
Вывод
таймера/ 
счетчика

Вывод
общего
назначения

Описание назначения вывода

Т0
PB0
Вход внешнего сигнала таймера T0

OC0
PB3
Выход схемы сравнения таймера T0

Т1
PB1
Вход внешнего сигнала таймера T1

ICP1
PD6
Вход захвата таймера T1

OC1A
PD5
Выход A схемы сравнения таймера T1

OC1B
PD4
Выход B схемы сравнения таймера T1

OC2
PD7
Выход схемы сравнения таймера T2

Не забывайте о том, что при использовании альтернативных 

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

3. Прерывания от таймеров/счетчиков

В микроконтроллере Atmega32 для разрешения/запрещения 

прерываний от таймеров/счетчиков используется регистр TIMSK. В
регистре TIFR содержатся флаги прерываний. 

Формат регистра TIMSK показан на Рис.1, а описание его 

битов приведено в Табл.3.

Рис.1 Формат регистра TIMSK.

Таблица 3. Биты регистра TIMSK.

Название бита
Описание

TOIE0
Флаг разрешения прерывания для 
события “переполнение” Таймер 0

OCIE0
Флаг разрешения прерывания для 
события “совпадение” Таймер 0

TOIE1
Флаг разрешения прерывания для 
события “переполнение” Таймер 1

OCIE1B
Флаг разрешения прерывания для 
события “совпадение B” Таймер 1

OCIE1A
Флаг разрешения прерывания для 
события “совпадение A” Таймер 1

TICIE1
Флаг разрешения прерывания по 

событию “захват” Таймер 1

TOIE2
Флаг разрешения прерывания для 
события “переполнение” Таймер 2

OCIE2
Флаг разрешения прерывания для 
события “совпадение” Таймер 2

Для разрешения какого-либо прерывания от таймера/счетчика 

необходимо установить в 1 соответствующий бит регистра TIMSK
и, разумеется, флаг I регистра SREG (выполняется командой sei()).

Формат
регистра 
TIFR,
используемый 
для 
индикации 

наступления прерываний от таймеров/счетчиков, показан на Рис.2, 
а описание его битов приведено в Табл.4.

Рис.2 Формат регистра TIFR.

Таблица 4. Биты регистра TIFR.

Название бита
Описание

TOV0
Флаг прерывания для события 

“переполнение” Таймер 0

OCF0
Флаг прерывания для события 

“совпадение” Таймер 0

TOV1
Флаг прерывания для события 

“переполнение” Таймер 1

OCF1B
Флаг прерывания для события

“совпадение B” Таймер 1

OCF1A
Флаг прерывания для события

“совпадение A” Таймер 1

ICF1
Флаг прерывания по событию

“захват” Таймер 1

TOV2
Флаг прерывания для события 

“переполнение” Таймер 2

OCF2
Флаг прерывания для события 

“совпадение” Таймер 2

При наступлении какого-либо события соответствующий флаг 

регистра TIFR устанавливается в 1. При запуске подпрограммы 
обработки прерывания он аппаратно сбрасывается в 0. Любой флаг 
может быть также сброшен программно, записью в него лог. 1.

4. Предделители таймеров/счетчиков

Блоки предделителей предназначены для формирования 

тактовых 
сигналов 
таймеров/счетчиков 
clkTO, 
clkT1, 
clkT2. 

Упрощенная 
структурная 
схема 
блока 
предделителя 

таймеров/счетчиков, не имеющих асинхронного режима работы, 
приведена на Рис.3. Структурная схема блока предделителя 
таймеров/счетчиков, имеющих возможность работы в асинхронном 
режиме, приведена на Рис.4.

Рис.3 Блок предделителя таймера счетчика без возможности 

асинхронного режима работы.

Рис.4 Блок предделителя таймера счетчика c возможностью

асинхронного режима работы.

Как показано на рисунке, в состав каждого блока входят 

собственно 10-битный предделитель, выходной мультиплексор 
(селектор 
тактового 
сигнала), 
а 
для 
таймеров, 
имеющих 

возможность работы в асинхронном режиме - еще и входной 
мультиплексор исходного тактового сигнала. По последней схеме 
выполнен предделитель таймера/счетчика Т2 микроконтроллеров 
Atmega8x/16x/32x.

Следует иметь в виду, что все таймеры/счетчики каждой 

модели семейства, не имеющие асинхронного режима работы, 
используют один и тот же 10-битный предделитель. При этом 
управление 
тактовым 
сигналом 
каждого 
таймера/счетчика 

осуществляется индивидуально [6].

Предделители работают независимо от таймеров/счетчиков. 

Следствием 
этого 
является, 
в 
частности, 
неопределенный 

промежуток времени (1...N+1 тактов исходного сигнала, где N —
коэффициент 
деления 
предделителя) 
между 
разрешением 

таймера/счетчика и первым его отсчетом при работе совместно с 
предделителем. Чтобы уйти от этой неопределенности, можно 
воспользоваться возможностью сброса предделителей.

Помимо управления тактовым сигналом таймера/счетчика, все 

микроконтроллеры семейства позволяют осуществлять сброс 
предделителей. Для этого используются биты PSRx регистра
специальных функций SFIOR. Формат этого регистра для 
микроконтроллера Atmega32 приведен на Рис.5 (биты, не используемые для управления предделителями таймеров/счетчиков, 
указаны на рисунке как "Х").

Рис.5 Формат регистра SFIOR.

При записи в бит PSR10 лог. 1 синхронный предделитель, 

общий для первого и нулевого таймера/счетчика переводится в исходное состояние. PSR2
отвечает за второй таймер/счетчик, 

имеющий возможность асинхронной работы. Биты сбрасываются в 
0 аппаратно после выполнения операции сброса. 

Таймеры/счетчики 0 и 1, не имеющие асинхронного режима 

работы, могут тактироваться от внешнего сигнала. 

Внешний сигнал, поступающий на вход Т0 или T1 микроконт
роллера, прежде чем поступить на вход селектора тактового 
сигнала, проходит через специальный узел, включающий схему 
синхронизации и детектор фронтов. В общем виде схема этого узла 
приведена на Рис.6.

Рис.6 Входной каскад для выводов T0 и T1.

Рис.7 Структурная схема 8-битного таймера-счетчика T0 без 

асинхронного режима.

Синхронизация внешнего сигнала осуществляется с частотой 

тактового сигнала микроконтроллера (состояние вывода Т0
считывается по нарастающему фронту тактового сигнала clk1/0). 
Поэтому частота внешнего сигнала должна быть в 2 раза ниже 
частоты тактового сигнала микроконтроллера (fEXT<fCLK_I/O/2).
Однако, чтобы гарантировать обнаружение фронтов внешнего 
сигнала во всем диапазоне возможных изменений частоты и 
скважности тактового сигнала микроконтроллера (из-за разброса 
параметров элементов тактового генератора), рекомендуется, чтобы 
частота внешнего сигнала была меньше, чем fCLK_I/O/2,5.

Также следует понимать, что из-за входного каскада 

происходит временная задержка между изменением состояния 
вывода и обновлением счетного регистра таймера/счетчика. 
Величина задержки составляет от 2.5 до 3.5 тактов.

Доступ онлайн
от 80 ₽
В корзину