Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы МП.New.doc
Скачиваний:
27
Добавлен:
23.11.2019
Размер:
1.08 Mб
Скачать

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

Формирование тактового сигнала 16-битных таймеров/счетчиков clkTn (n = 1,3,) осуществляется блоком предделителя. В качестве тактового сигнала clkTn таймеров/счетчиков Т1 и ТЗ, может использоваться:

• системный тактовый сигнал (clkTn = clkI/0);

• масштабированный системный тактовый сигнал (clkTn = clkI/0/N);

• внешний сигнал, поступающий на вход Т1 (ТЗ) микроконтроллера ( clkTn = clkEXT).

Выбор источника тактового сигнала, а также запуск и остановка таймеров/счетчиков осуществляются с помощью битов CSn2...CSn0 регистра управления таймером TCCRnB согласно Табл. 2.4.

Таблица 2.4. Выбор источника тактового сигнала 16-битных таймеров/счетчиков

CSn2

CSn1

CSn0

Источник тактового сигнала

0

0

0

Таймер/счетчик остановлен

0

0

1

clkI/0

0

1

0

clkI/0/8

0

1

1

clkI/0/64

1

0

0

clkI/0/256

1

0

1

clkI/0/1024

1

1

0

Вывод Тn, счет осуществляется по спадающему фронту импульсов

1

1

1

Вывод Тn, счет осуществляется по нарастающему фронту импульсов

Примечание, n = 1,3.

2.2. Режимы работы

Режим работы таймеров/счетчиков Т1 и ТЗ определяется состоянием битов WGMn3:WGMn2 регистра TCCRnB совместно с битами WGMn1:WGMn0 регистра ТССRnА. Зависимость режима работы таймеров/счетчиков от состояния этих битов показана в Табл. 2.5.

Таблица 2.5. Режимы работы 16-битных таймеров/счетчиков Т1 и ТЗ

WGMn3

WGMn2

WGMn1

WGMn0

Режим работы таймера/счетчика Тn

Модуль счета (TOP)

Обновление регистров OCRnx

Момент установки флага TOVn

0

0

0

0

0

Normal

$FFFF

Немедленно

$FFFF

1

0

0

0

1

Phase correct PWM, 8-битный

$00FF

При TOP

$0000

2

0

0

1

0

Phase correct PWM, 9-битный

$01FF

При TOP

$0000

3

0

0

1

1

Phase correct PWM, 10-битный

$03FF

При TOP

$0000

4

0

1

0

0

CTC (сброс при совпадении)

OCRnA

Немедленно

$FFFF

5

0

1

0

1

Fast PWM, 8-битный

$00FF

При TOP

При TOP

6

0

1

1

0

Fast PWM, 9-битный

$01FF

При TOP

При TOP

7

0

1

1

1

Fast PWM, 10-битный

$03FF

При TOP

При TOP

8

1

0

0

0

Phase and Frequency Correct PWM

ICRn

$0000

$0000

9

1

0

0

1

Phase and Frequency Correct PWM

OCRnA

$0000

$0000

10

1

0

1

0

Phase correct PWM

ICRn

При TOP

$0000

11

1

0

1

1

Phase correct PWM

OCRnA

При TOP

$0000

12

1

1

0

0

CTC (сброс при совпадении)

ICRn

Немедленно

$FFFF

13

1

1

0

1

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

-

-

-

14

1

1

1

0

Fast PWM

ICRn

При TOP

При ТОР

15

1

1

1

1

Fast PWM

OCRnA

При TOP

При ТОР

Примечание, n = 1,3.

Режим СТС (сброс при совпадении)

В этом режиме счетный регистр тоже функционирует как обычный суммирующий счетчик, инкрементирование которого осуществляется по каждому импульсу тактового сигнала clkTn. Однако максимально возможное значение счетного регистра и, следовательно, разрешающая способность счетчика определяются либо регистром сравнения блока A OCRnA (WGMn3:0 = 0100), либо регистром захвата ICRn (WGMn3:0 = 1100). После достижения максимального значения счет продолжается со значения $0000. Как и в режиме Normal, флаг прерывания TOVn устанавливается при изменении значения счетного регистра с $FFFF на $0000. При достижении счетчиком максимального значения устанавливается флаг:

• OCFnA, если модуль счета определяется регистром сравнения OCRnA (WGMn3:0 = 0100);

• ICFn, если модуль счета определяется регистром захвата ICRn (WGMn3:0=1100).

Одновременно с установкой флага может изменяться состояние вывода ОСnх микроконтроллера. Состояние вывода определяется содержимым битов СОМn:1:СОМn0 регистра TCCRnx, как указано в Табл. 2.6.

Таблица 2.6. Управление выводами OCnA/OCnB/ОСnС в режиме СТС

COMnxl

COMnx0

Описание

0

0

Таймер/счетчик Тn отключен от вывода ОСnx

0

1

Состояние вывода меняется на противоположное

1

0

Вывод сбрасывается в 0

1

1

Вывод устанавливается в 1

Примечание, n = 1,3,4,5; х = А, В или С.

Как и в режиме Normal, состояние выводов ОСnА/ОСnВ/ОСnС при необходимости может быть изменено принудительно, записью лог. 1 в бит FOCnA/FOCnB/FOCnC регистра ТССRnС. Прерывание при этом не генерируется, и сброс счетного регистра не производится.