В HTML      В PDF
микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > AVR

реклама

 
радиационно стойкие ПЗУ Миландр

Продажа силового и бронированного кабеля и провода в Москве




Arduino Uno R3 Atmega328
готовый модуль
Лучшая Цена 335 руб




Стартовый набор с большим набором аксесуаров
Arduino Uno R3 Atmega328
Лучшая Цена 2211 руб



14.7. Канал захвата

Для обнаружения внешних событий и фиксации момента их возникновения любой их каналов захвата-сравнения может использоваться в роли канала захвата. Для выполнения захвата счетчик необходимо перевести в нормальный режим работы.

Захват могут инициировать любые события системы событий, в т.ч. изменение состояния на любом из выводов. От заданных для таймера-счетчика действий события будет зависеть тип выполняемого захвата.

Перед выполнением захвата необходимо разрешить работу требуемого канала захвата-сравнения. При возникновении условия захвата, таймер-счетчик зафиксирует момент возникновения события путем копирования текущего значения регистра счетчика в регистр разрешенного канала захвата-сравнения.

Если в качестве источника события для захвата используются линии ввода-вывода, их необходимо настроить на обнаружение фронтов. Более детально о такой настройке линий ввода-вывода см. в 13.6 "Настройка параметров контроля входа". После захвата, если значение в регистре периода будет меньше 0x8000, в старшем бите регистра захвата будет запомнена полярность фронта на линии ввода-вывода. Равенство старшего бита регистра захвата нулю означает, что захват инициирован падающим фронтом. Если же старший бит окажется равным единице, то захват вызвал нарастающий фронт.

Поддерживается три различных типа захвата.

14.7.1. Входной захват

Если в качестве действия события выбрать "входной захват", то при возникновении любого события в разрешенном канале захвата будет выполнен входной захват. О доступности действительных данных в соответствующем регистре захвата-сравнения сигнализируют флаги прерываний. Точно также о доступности действительных данных в регистрах буферов сигнализируют флаги действительности буферов. Подробности о двойной буферизации захвата см. в 14.5 "Двойная буферизация".

Счетчик выполняет непрерывный счет от BOTTOM к TOP, а затем заново начинает счет с BOTTOM и т.д. (см. рисунок 14.9). На рисунке также показаны четыре события захвата в одном канале захвата.

Временная диаграмма захвата входа
Рисунок 14.9. Временная диаграмма захвата входа

14.7.2. Захват частоты

Если в качестве действия события выбрать "захват частоты", то при возникновении любого события в разрешенном канале захвата будет выполняться входной захват и рестарт. Данный тип захвата позволяет измерять частоту или период сигнала. Результатом захвата является интервал времени T от предыдущего рестарта таймера-счетчика до возникновения события. Зная его, можно легко вычислить частоту f сигнала: f = 1/T.

На рисунке 14.10 показан пример, где дважды измеряется период внешнего сигнала.

Захват частоты внешнего сигнала
Рисунок 14.10. Захват частоты внешнего сигнала

Поскольку все каналы захвата используют один и тот же счетчик (CNT), активным в текущий момент времени может быть только один из каналов захвата. Если же все-таки использовать два канала захвата с различными источниками, то рестарт счетчика будет выполняться по положительным фронтам событий обоих входных источников и, поэтому, входной захват будет бесполезным.

14.7.3. Захват длительности импульса

Если в качестве действия события выбрать "измерение длительности импульса", то разрешенный канал событий будет выполнять входной захват по падающему фронту события и перезапускать таймер по нарастающему фронту. В результате, счетчик будет обнуляться в начале каждого импульса, а в конце импульса будет выполнен входной захват. Источником событий должна быть линия ввода-вывода с настроенной генерацией событий по обоим фронтам. На рисунке 14.11 показан пример, где дважды выполняется измерение длительности импульсов внешнего сигнала.

Захват длительности импульса внешнего сигнала
Рисунок 14.11. Захват длительности импульса внешнего сигнала

14.7.4. 32-битный входной захват

Совместное использование двух таймеров-счетчиков позволяет добиться 32-битного входного захвата. Типичная настройка 32-битного входного захвата подразумевает подключение события переполнения младшего таймера к входу старшего таймера через систему событий. С учетом конвейеризации всех событий обновление старшего таймера произойдет с задержкой в один период синхронизации УВВ после возникновения переполнения в младшем таймере. Для компенсации этой задержки у старшего таймера необходимо установить бит задержки события.

14.7.5. Переполнение захвата

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



<-- Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (495) 514 4110. e-mail:info@eust.ru
©1998-2016 ООО Рынок Микроэлектроники