Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Уч. пос. МПТ (2.04.12).pdf
Скачиваний:
404
Добавлен:
22.03.2015
Размер:
10.95 Mб
Скачать

4.Если необходимо, разрешить «пробуждение» микроконтроллера по запросу внешнего прерывания через регистр INTWAKE. Если режим отключения питания не используется, то настройка не производится.

5.Разрешить внешнее прерывание через регистры VICVectAddr0–15, VICVectCntl0–15 и VICIntEnable.

Процедура обработки прерывания должна содержать команду сброса флага путем записи единицы в соответствующий разряд регистра EXTINT.

1.13 Таймеры-счетчики

Таймеры-счетчики применяются для формирования и измерения интервалов времени или для подсчета числа внешних импульсов. Таймерсчетчик представляет собой программируемый суммирующий счетчик с возможностью выбора источника счетных импульсов. Микроконтроллер LPC2148 оснащен двумя абсолютно идентичными по функциональным возможностям 32-разрядными таймерами-счетчиками. Содержимое таймеровсчетчиков доступно для чтения и записи через регистры TC0 и TC1.

1.13.1 Режим таймера и схема совпадения

В зависимости от источника счетных импульсов различают режим таймера или счетчика. В режиме таймера ведется счет внутренних тактовых импульсов микроконтроллера . При максимальной тактовой частоте 60 МГц разрядность позволяет продолжать счет без переполнения в течение с. Формирования или измерение бóльших интервалов времени возможно с использованием 32-разрядных предварительных счетчи- ков-делителей c произвольным модулем счета в пределах разрядности (регистры TxPC). Каскадное соединение таймера и предварительного делителя практически бесконечно расширяет диапазон временных интервалов. При тактовой частоте 60 МГц переполнение произойдет почти через 10 тысяч лет.

Временные интервалы формируются схемой совпадения, которая сравнивает содержимое таймера с пороговыми регистрами TxMR0–TxMR3. В момент равенства возможно выполнение следующих действий: сброс таймера в ноль, остановка таймера, запрос прерывания, изменение логического уровня на портовой линии. Четыре схемы совпадения позволяют выполнять разные действия при достижении таймером каждого из четырех пороговых значений.

Длительность временного интервала при увеличении таймера от 0 до TxMRx без предварительно делителя () составляет

.

(1.13.1)

С предварительным делителем ()

. (1.13.2)

Следовательно, значение порогового регистра, обеспечивающего задержку (без предварительного делителя) определяется выражением

. (1.13.3)

50

Здесь — ближайшее к целое, не превосходящее , а — округленная до ближайшего целого величина .

1.13.2 Режим счетчика

В режиме счетчика подсчитываются импульсы напряжения, поступающие на портовые линии CAPx.0–CAPx.3. Максимальная частота на счетном входе составляет 30 МГц.

1.13.3 Схема захвата

Схема захвата позволяет «запомнить» в регистрах TxCR0–TxCR3 текущее состояние таймера-счетчика в момент появления сигнала на входных портовых линиях CAPx.0–CAPx.3. Захват состояния осуществляется с минимально возможной временной задержкой в один машинный цикл.

1.13.4 Управляющие регистры

Схема регистров управления таймерами-счетчиками приведена на ри-

сунке 1.13.1.

Регистры TxIR (T0TCR, T1TCR) содержат флаги прерываний от схем совпадения и захвата. Установленный флаг должен сбрасываться в процедуре обработки прерывания путем записи единицы в соответствующий разряд. Запись нуля не оказывает влияния.

Биты 0–3 (MR0I–MR3I) — флаги прерываний от выходов схемы совпадения MAT0–MAT3.

Биты 4–7 (CR0I–CR3I) — флаги прерываний от выходов схемы захвата CAP0–CAP3. Регистры TxTCR (T0TCR, T1TCR) предназначены для запуска и сброса таймеров-счетчиков МК. Каждый из них содержит только два управляющих бита.

Бит 0 (ENABLE). Установка единицы разрешает счет, сброс в ноль запрещает счет.

Бит 1 (RESET). Установка единицы приводит к сбросу таймерасчетчика в ноль. Счет будет продолжен после сброса бита RESET в ноль.

Регистры TxCTCR (T0CTCR, T1CTCR) предназначены для настройки режимов работы встроенных таймеров-счетчиков.

Биты 0–1 (MODE). Отвечают за выбор режима работы таймерасчетчика (таблица 1.13.1).

Биты 2–3 (InputSelect). Отвечают за выбор линии CAPx.0–CAPx.3, которая служит счетным входом или входом захвата. Номер линии (0–3) совпадает с двоичным кодом в InputSelect (00–11). Значение этих битов не важно

врежиме таймера (), когда внешние сигналы не используются.

Таблица 1.13.1 – Режимы работы таймеров-счетчиков МК LPC2148

MODE

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

00

Режим таймера. Инкремент по фронту внутреннего сигнала PCLK

01

Режим счетчика. Инкремент по фронту внешнего сигнала CAP.

10

Режим счетчика. Инкремент по срезу внешнего сигнала CAP.

11

Режим счетчика. Инкремент по фронту и срезу сигнала CAP.

51

TxTCR – настройка таймеров-счетчиков

 

 

 

15

11

8

7

2

1

0

 

 

T

 

E

S

 

RE

 

 

Сброс

EN ВКЛ

TxCTCR – настройка режима счета

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

 

 

 

 

 

 

 

 

8

7

 

 

 

 

 

 

 

4

 

3

 

2

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Input

MODE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Select

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TxMCR – настройка схемы совпадения

 

 

 

 

 

 

Выбор входа

 

 

 

Режим

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

12

11

10

 

9

 

8

7

 

6

 

5

4

 

3

 

2

1

0

 

 

 

 

S

 

 

 

R

 

 

 

I

 

S

 

R

 

 

 

I

 

 

S

 

R

 

 

 

I

 

S

 

 

R

 

I

 

 

 

3

 

 

3

 

 

3

R2

R2

 

 

2

 

1

R1

 

 

1

R0

0

0

 

 

R

 

 

R

 

 

 

R

 

 

R

 

R

 

 

R

 

R

 

 

R

 

 

M

 

 

M

 

 

 

M

 

 

M

 

M

 

M

 

 

M

 

 

M

 

M

 

 

M

M

 

 

M

 

 

 

 

 

 

3

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

Сброс

 

Прерывание

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TxCCR – настройка схемы захвата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Остановка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

12

11

10

 

9

 

8

7

 

6

 

5

4

 

3

 

2

1

0

 

 

 

 

3

 

 

 

3

 

 

3

 

2

P2

 

 

2

 

 

1

P1

 

 

1

0

 

0

0

 

 

P

 

P

 

 

P

 

P

 

P

 

P

 

P

 

AP

P

 

P

 

 

A

 

I

A

 

 

E

A

 

E

A

I

A

E

A

 

E

A

 

I

A

E

A

 

E

CA

 

E

CA E

 

 

C

 

C

 

 

 

C

 

 

C

C

C

 

 

C

 

C

C

 

 

C I

 

 

 

 

 

 

 

 

F

 

 

R

 

 

 

F

 

 

R

 

 

 

 

F

 

 

R

 

 

F

 

R

 

 

 

 

 

 

3

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

Срез

 

Фронт

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TxEMR – настройка сигналов совпадения

 

 

 

 

 

 

 

 

 

 

 

 

 

Прерывание

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

12

11

10

 

9

 

8

7

 

6

 

5

4

 

3

 

2

1

0

 

 

EMC3

EMC2

EMC1

EMC0

EM3 EM2 EM1 EM0

 

 

Режим

 

 

Режим

Режим

Режим

 

 

 

 

Состояние

 

 

TxIR – флаги прерываний

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

 

 

 

 

 

 

 

 

 

 

8

7

 

6

 

5

4

 

3

 

2

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I

 

 

 

I

 

 

I

 

I

 

 

 

I

 

I

 

 

I

 

I

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

2

 

1

 

0

 

 

3

2

 

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

CR

 

R

R

 

R

 

R

R

 

R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

C

 

 

C

 

M

 

 

M

M

 

 

M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Флаги прерываний

Флаги прерываний

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

от схемы захвата

от схемы совпадения

Рисунок 1.13.1 – Схема регистров управления таймерами-счетчиками

Регистры TxPR (T0PR, T1PR) содержат предельные 32-разрядные значения предварительных счетчиков-делителей.

Регистры TxTC (T0TC, T1TC) содержат 32-х разрядный код, накопленный в таймере-счетчике.

Регистры TxPС (T0PС, T1PС) — содержимое 32-разрядных предварительных счетчиков-делителей. Таймер-счетчик увеличивается на единицу при достижении счетчиком-делителем TxPС предельного значения, заданного в TxPR. Если , то в режиме таймера инкремент будет происходить каждый такт PCLK; если , каждый второй такт и т. д. (1.13.2).

Регистры TxMRx (T0MR0–T0MR3, T1MR0–T1MR3) — пороговые регистры, с которыми сравнивается содержимое таймеров счетчиков. При совпадении генерируются события, заданные регистром TxMCR.

Регистры TxMCR (T0MCR, T1MCR).

52

● Биты 0–11 (MR0I–MR3I, MR0R–MR3R, MR0S–MR3S) задают реак-

ции на совпадение таймера с каждым из пороговых регистров TxMR0– TxMR3 (см. таблицу 1.13.2).

Таблица 1.13.2 – Реакции на совпадение таймера-счетчика с TxMR0–TxMR3

Управляющие биты

Назначение

MR0I–MR3I

Разрешить/запретить запрос прерывания

MR0R–MR3R

Разрешить/запретить сброс таймера-счетчика в ноль

MR0S–MR3S

Разрешить/запретить остановку счета

Регистры TxCRx (T0CR0–T0CR3, T1CR0–T1CR3) содержат состоя-

ния таймеров счетчиков, захваченные при событии CAP0–CAP3. Регистры TxCCR (T0CCR, T1CCR) — настройка схемы захвата.

● Биты 0–3 (CAP0RE–CAP3RE, CAP0FE–CAP3FE, CAP0I–CAP3I) за-

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

Таблица 1.13.3 – Реакции на сигнал захвата CAPx.0–CAPx.3

Управляющие биты

Назначение

CAP0RE–CAP3RE

Захват по фронту сигнала CAPx.0–CAPx.3

CAP0FE–CAP3FE

Захват по срезу сигнала CAPx.0–CAPx.3

CAP0I–CAP3I

Запрос прерывания по событию захвата

Регистры TxEMR (T0EMR, T1EMR).

Биты 0–3 (EM0–3) отражают состояние логических уровней на вы-

ходах MATx.0–MATx.3

Биты 4–5 (EMC0–EMC3). Биты управляют формированием внешнего сигнала по совпадению таймера-счетчика с каждым из пороговых регистров TxMR0–TxMR3 (в соответствии с таблицей 1.13.4).

Таблица 1.13.4 – Способы формирования внешнего сигнала совпадения

ECx

Реакция на совпадение

00

Не изменять внешний сигнал MATx.0

01

Установить на выходе MATx.0

сигнал «логический ноль»

10

Установить на выходе MATx.0

сигнал «логическая единица»

11

Инвертировать сигнал на выходе MATx.0

1.13.5 Формирование интервалов времени через систему прерываний

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

1. Настроить работу схемы совпадения через регистр TxMCR. Обычно требуется включить сброс счетчика и запрос прерывания по совпадению с одним из пороговых регистров, например, TxMR0. Для этого достаточно установить единицы в битах MR0R, MR0I регистра TxMСR. Запрос прерывания необходимо разрешить, даже если предполагается программный опрос флага.

53