Модуль захвата (INPUTCAPTURE). Блок схема модуля захвата. Регистры модуля захвата. Буфер в модуле захвата

Страницы работы

Фрагмент текста работы

Перевод выполнил

12.  Модуль захвата (INPUTCAPTURE)

12.1. Введение

Этот раздел описывает модуль захвата и его режимы работы. Модуль захвата используется, чтобы захватить значение из одного или другого таймера, в зависимости он выбранного таймера, по внешнему сигналу на входе контроллера. Режим захвата очень полезен для измерения длины импульса. Рисунок 12-1 показывает упрощённую блок-схему модуля захвата.

Модуль Захвата имеет множество режимов работы. Режим работы модуля захвата выбирается с помощью регистра управления модулем захвата (ICxCON). Ниже приведены режимы работы модуля захвата:

-  Захват по каждому заднему фронту на выводе ICx

-  Захват по каждому переднему фронту на выводе ICx

-  Захват по каждому 4-му переднему фронту на выводе ICx

-  Захват по каждому 16-му переднему фронту на выводе ICx

-  Захват по каждому заднему фронту и по каждому переднему фронту на выводе ICx

-  Пробуждение микроконтроллера из режима бездействия по переднему фронту на выводе ICx

Модуль захвата имеет четырёхуровневый (FIFO) буфер. В программе можно выбрать количество захватов, после которых может быть сформировано прерывание.

Примечание: Каждый dsPIC имеет один или более модулей захвата. Обозначение ‘x’ используется в названии выводов, битах управления и битах статуса чтобы обозначить специфический номер модуля захвата.

Рисунок 12.1. Блок схема модуля захвата

12.2. Регистры модуля захвата

Каждый канал захвата, доступный на dsPIC33 имеет следующие регистры:

• ICxCON: Регистр управление модулем захвата

• ICxBUF:  Буфер модуля захвата

Регистр ICxCON: Регистр управления модулем захвата бит 15-14 Нереализованный: Читается как ‘0’

бит 13ICSIDL: Останавливать работу модуля захвата в Idle.

1 = модуль захвата останавливается, когда контроллер переходит в Idle

0 = модуль захвата продолжает работу, когда контроллер переходит в Idle

бит 12-8Нереализованный: Читается как ‘0’

бит 7ICTMR: Выбирает с какого таймера производится захват

1 = захват производится с таймера TMR2

0 = захват производится с таймера TMR3

бит 6-5ICI <1:0>: Определяет после скольких захватов генерируется прерывание

11 = прерывание после четырёх захватов

10 = прерывание после трёх захватов

01 = прерывание после двух захватов

00 = прерывание после каждого захвата бит 4ICOV: Флаг переполнения модуля захвата (только для чтения)

1 = произошло переполнения буфера модуля захвата

0 = переполнения не было бит 3ICBNE: Флаг освобождения буфера модуля захвата (только для чтения)

1 = буфер модуля захвата не пуст, по крайней мере имеется одно значение, которое может быть прочитано

0 = буфер модуля захвата пуст бит 2-0ICM <2:0>: Выбор режима работы модуля захвата

111 = модуль захвата выводит микроконтроллер из режима SLEEP и Idle (определяется только передний фронт; все другие биты регистра управления не используются)

110 = не используется (модуль захвата отключён)

101 =  захват после каждого 16-го переднего фронта

100 = захват после каждого 4-го переднего фронта

011 = захват после каждого переднего фронта

010 = захват после каждого заднего фронта

001 = захват после переднего фронта и после заднего фронта (биты ICI <1:0> не используются для данного режима)

000 = модуль захвата отключён

12.3 CAPTURE EVENT GENERATION

12.3.1 Выбор Таймера

Каждый dsPIC33 имеет один или более модулей захвата. Каждый модуль может выбирать для захвата либо таймер Timer2 либо Timer3. Выбор таймера осуществляется с помощью бита (ICTMR) в регистре управления модулем захвата (ICxCON <7>). Этот таймер может управляться как внутренним источником тактовых импульсов (FOSC/2) так и внешним источников импульсов, приходящих на вход TxCK.

12.3.2 Режимы работы модуля захвата

Модуль захвата захватывает 16-ти битное значение выбранного таймера (Timer2 или Timer3), когда происходит условия для захвата. После события захвата значение из таймера заносится в буфер модуля захвата.

Режим работы модуля захвата выбирается при помощи битов

(ICM <2:0>) в регистре управления модулем захвата (ICxCON <2:0>). Таблица 12-1 содержит перечень всех режимов работы модуля захвата, а также соответствующие значение битов. Перед изменением режима работы модуля захвата необходимо модуль захвата отключить (то есть, ICM <2:0> = 000).

Таблица 12-1. Режимы работы модуля

Значение битов ICM<2:0>

Режим работы модуля захвата

000

Модуль отключён

001

Захват по любому фронту

010

захват после каждого заднего фронта

011

захват после каждого переднего фронта

100

захват после каждого 4-го переднего фронта

101

захват после каждого 16-го переднего фронта

110

не используется (модуль захвата отключён)

111

модуль захвата выводит микроконтроллер из режима SLEEP и Idle

Рисунок 12-2 показывает различные способы захвата.

Рисунок 12-2. Способы захвата

12.4 Буфер в модуле захвата

Модуль захват может захватывать значение или из таймера Timer2

Похожие материалы

Информация о работе