Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Пользователю -> Евстифеев А.В. -> "Микроконтроллеры семейства" -> 82

Микроконтроллеры семейства - Евстифеев А.В.

Евстифеев А.В. Микроконтроллеры семейства — Infineon, 2007. — 318 c.
Скачать (прямая ссылка): microkontrolleri2007.pdf
Предыдущая << 1 .. 76 77 78 79 80 81 < 82 > 83 84 85 86 87 88 .. 100 >> Следующая


Edge Select

CCxIO

X

Capture Reg. CCx

t

CCMCDx

-И CCxIR

X = 31...0 У = 0, 1, 7, 8

Ь

Interru pt Request

Inpui CAPCOM Timer Ту TyIR I
Clock *

Interru pt Request

MCBG2015

Рисунок 14-5

Блок-схема режима захвата

В случае совершения захвата по внешнему сигналу CCxIO, необходимо установить «0»в соответствующем бите регистра направления порта. Для гарантированного захвата, необходимо как минимум в течении 8 тактов ЦПУ удерживать сигнал на входе захвата без изменения.

Входной сигнал захвата будет сканироваться во время 8 тактов. В том случае если одновременно с этим произошло изменение значения в таймере или инкрементирование значения таймера, будет произведен захват нового значения таймера.

В том случае, когда CCxIO настроен на вывод данных, захват может быть произведен программно, путем изменения значения на выходе порта.

14-12 МЭИ, Центр Промышленной Электроники Фирмы Infineon

САРСОМ/С167

14.5 Режимы сравнения

Режимы сравнения позволяют с минимальной загрузкой процессора переключать события (прерывания и/или выходные сигналы). Во всех режимах сравнения, сохраненное в регистре CCx, значение постоянно сравнивается с содержимым таймера (Т0/Т1 или Т7/Т8). В тот момент, когда значение таймера достигает значения регистра CCx, выдается сигнал на выход CCxIO (за исключением CC24IO... CC27IO) и устанавливается флаг запроса на прерывание CCxIR.

В том случае если два регистра запрограммированы на одинаковое значение сравнения, будут выставлены флаги запросов на прерывание и также изменены значения на выходах в течении 8 тактов ЦПУ после достижения таймером сравниваемого значения. После этого другие результативные сравнения по этому значению будут запрещены, до тех пор пока таймер снова не достигнет этого значения, или значение таймера не будет программно изменено. После RESET работа в режиме сравнения будет начата, если значение в таймере инкрементируется или программно изменяется и выбирается один из режимов сравнения.

Различные режимы сравнения можно установить в поле CCMODx регистра управления режимом захвата и сравнения.

Режим сравнения О

Режим Interrupt Only используется для создания программных временных зависимостей. Режим сравнения 0 выбирается путем установки 100 в битовом поле CCMODx.

В этом режиме флаг запроса на прерывание устанавливается при достижении таймера значения регистра CCx. Если значение регистра CCx изменяется несколько раз в течении одного периода таймера, возможно несколько результативных сравнений за один период таймера. При работе в этом режиме вывод порта CCxIO не изменяет своего значения.

В том случае когда для регистров СС8... CC15 или СС24... СС31 выбран режим 0, работа в режиме double-register возможна, если банк регистров 1 запрограммирован в режим сравнения 1.

14-13 МЭИ, Центр Промышленной Электроники Фирмы Infineon

САРСОМ/С167

Рисунок 14-6

Блок-схема режима 0 и 1

В примере приведенном ниже, новое значение cv2 записывается в регистр CCx после событий сравнения #1 и #3, а cvl записывается после событий #2 и #4. Данная зависимость имеет место в результате обработки запросов на прерывание от таймера Tl, и запросов на прерывание от регистров CCx. Моменты совершения запросов CCxIR определяется значениями cvl и cv2.

Contents of Ту

FFFFH

.. Compare Valus cv2 _ _ Compare Value cvl

.. Reload Value<TyRCL> OODOH

Interrupt Requests:

t-

Event #1 Event #2

CCx:=cv2 CCx:=cv1

Event#3 Event#4 CCx:=cv2 CCx: =cv1

MCT02017

Рисунок 14-7

Пример для режимов 0 и 1

14-14 МЭИ, Центр Промышленной Электроники Фирмы Infineon

САРСОМ/С167

Режим сравнения 1

Режим сравнения 1 выбирается путем установки 101 в битовом поле CCMODx.

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

При работе в режиме сравнения 1 возможна обработка нескольких событий за один период таймера. В случае переполнения таймера не происходит инвертирования значения на выходе и не запрещаются или не разрешаются дальнейшие сравнения.

Для использования выводов порта в качестве выводов сигналов CCxIO необходимо устанавливать направление порта на вывод данных в соответствующем регистре направления порта.

В режиме сравнения 1 значение на выходе порта инвертируется после каждого результативного сравнения.

Примечание: Если одновременно с программной записью в порт имеет место инвертирование значения на выходе вследствие результативного сравнения, то программная запись имеет более высокий уровень приоритета. При этом не будет произведено инвертирование выходного значения по сигналу сравнения.

В случае программирования регистров CC0... CC7 или CC16... CC23 в режим 1, эти регистры могут работать в режиме сравнения double-compare в том случае, если регистр соответствующего банка 1 запрограммирован в режим 0.
Предыдущая << 1 .. 76 77 78 79 80 81 < 82 > 83 84 85 86 87 88 .. 100 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100