Schetchiksg.ru

Счетчик СГ
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что такое захват таймера счетчика

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-битного входного захвата подразумевает подключение события переполнения младшего таймера к входу старшего таймера через систему событий. С учетом конвейеризации всех событий обновление старшего таймера произойдет с задержкой в один период синхронизации УВВ после возникновения переполнения в младшем таймере. Для компенсации этой задержки у старшего таймера необходимо установить бит задержки события.

Читайте так же:
Перенос счетчика google analytics

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

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

Микропроцессоры и микроконтроллеры

Функционирование таймера Т1

Таймер Т1 является 16-разрядным. Для него допустимы все режимы работы, характерные для таймеров Т0 и Т2. Кроме того, он может по внешнему сигналу сохранять свое состояние в отдельном регистре (режим захвата).

В состав таймера Т1 входят счетный регистр TCNT1, регистр захвата ICR1, два регистра сравнения OCR1A и OCR1B (все регистры 16-разрядные), два
8-разрядных регистра управления TCCR1A и TCCR1B. Все 16-разрядные регистры реализованы как пара 8-разрядных с соответствующими именами: TCNT1H и TCNT1L.

Прерывания, генерируемые таймером, представлены в табл.27.2. Разрешение прерываний задается через регистр TIMSK (табл. 27.1).

Режим захвата – запись текущего состояния TCNT1 в регистре ICR1 – производится по фронту сигнала на входе ICP1 или по сигналу от аналогового компаратора.

Основное средство управления таймером Т1 – регистры TCCR1A и TCCR1B. Назначение их разрядов и принципы управления представлены в табл.27.6 и 27.7 соответственно.

Принципы управления таймером Т1 через регистр TCCR1А

Режим работы блока сравнения А. Разряды определяют поведение вывода OC1A при наступлении события «Совпадение» в зависимости от режима работы таймера. Для режимов Normal и CTC доступны такие состояния

Описание состояния вывода OC1A

Таймер отключен от вывода OC1A

Изменение на противоположное

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

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

Режим работы блока сравнения B. Определяет состояние вывода OC1B при наступлении события «Совпадение». Для режимов Normal и CTC доступны такие состояния

Описание состояния вывода OC1B

Таймер отключен от вывода OC1B

Изменение на противоположное

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

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

Принудительное изменение состояния выводов OC1A и OC1B в режимах Normal и CTC (зависит от битов COMnxi)

Режим работы таймера счетчика Т1. Используются совместно с битами WGM3, WGM2 регистра TCCR1B – см. табл. 27.8

Принципы управления таймером Т1 через регистр TCCR1B

Управление схемой подавления помех блока захвата

Выбор активного фронта сигнала захвата

Режим работы таймера счетчика Т1. Используются совместно с битами WGM1, WGM0 регистра TCCR1А – см. табл. 3.11

Управление тактовым сигналом. Разряды определяют источник тактового сигнала для таймера Т1. Настройка соответствует табл.27.4 (как для таймера Т0).

Работа таймера Т1 в режимах Normal и CTC

В этих режимах функционирование таймера Т1 аналогично работе таймера Т0, с той разницей, что счет производится в 16-разрядной конфигурации (от $0000 до максимум $FFFF). При достижении максимума $FFFF формируется флаг прерывания TOV1, а при совпадении значений TCNT1 и OCR1A или OCR1B – флаги OCF1A или OCF1B соответственно.

Читайте так же:
Эспандер кисти со счетчиком

Выбор режима работы таймера Т1

Normal, 16-разрядный счет

Phase correct PWM, 8-разрядный

Phase correct PWM, 9-разрядный

Phase correct PWM, 10-разрядный

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

Fast PWM, 8-разрядный

Fast PWM, 9-разрядный

Fast PWM, 10-разрядный

Phase and Frequency Correct PWM

Phase and Frequency Correct PWM

Phase correct PWM

Phase correct PWM

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

Режим FastPWM (быстродействующий ШИМ), позволяет генерировать высокочастотный широтно-модулированный сигнал. Суммирующий счет производится на регистре TCNT1. Ширина очередного импульса будет определяться текущим содержимым регистра сравнения OCR1А). Важно, что изменять содержимое этого регистра можно без остановки таймера, при этом помехи от переключения не возникают.

Состояние счетчика TCNT1 изменяется циклически от $0000 до $FFFF, при этом по переполнению формируется флаг прерывания TOV1, а при равенстве счетного регистра TCNT1 и одного из регистров сравнения OCR1А или OCR1В устанавливается флаг прерывания OCF1А или OCF1В соответственно. Состояние выводов OC1А и OC1В в момент достижения состояния «Совпадение» определяется содержимым пар разрядов (COM1А1, COM1А0) и (COM1В1, COM1В0) соответственно согласно табл.27.9.

Частота генерируемых ШИМ-импульсов определяется соотношением

где N – коэффициент деления предделителя, TOP – модуль счета, определяемый битами WGM13…WGM10 согласно табл.27.8.

Наличие двух регистров сравнения OCR1А или OCR1В и двух выводов сигналов OC1А и OC1В позволяет с помощью одного таймера Т1 генерировать две последовательности ШИМ-импульсов с раздельным управлением (правда, с одинаковой частотой). Такое использование таймера Т1 предпочтительно для реализации двухкоординатного управления технологическим оборудованием. Именно таймер Т1 использован в качестве генератора ШИМ-импульсов в составе системы УУМС-2.

Настройка поведения выводов OC1А (OC1В) в режиме FastPWM

Описание состояния вывода OC1A (ОС1B)

Таймер-счетчик Т1 отключен от вывода OC1A (ОС1B)

1 Таймеры/счетчики общего назначения (Презентация) ПЛАН Особенности Регистры ТС Режим захвата Режим сравнения. — презентация

Презентация была опубликована 8 лет назад пользователемhromatron.narod.ru

Похожие презентации

Презентация на тему: » 1 Таймеры/счетчики общего назначения (Презентация) ПЛАН Особенности Регистры ТС Режим захвата Режим сравнения.» — Транскрипт:

1 1 Таймеры/счетчики общего назначения (Презентация) ПЛАН Особенности Регистры ТС Режим захвата Режим сравнения

2 2 Особенности таймеров общего назначения Особенности: 32-битный таймер/счетчик с 32хбитным прескалером Режим счетчика импульсов или измерения времени Четыре 32-битных модуля захвата, с возможностью генерации прерывания Четыре 32-битных модуля сравнения с генерацией одного из четырех типов внешних сигналов Режимы: Внутренний таймер для подсчета внутренних событий Демодулятор длительности импульсов Свободно запускаемый таймер Счетчик внешних событий

3 3 Регистры управления таймерами-счетчиками (ТС) T0CTCR, T1CTCRРегистр управления источником счетных импульсов. T0TC, T1TCРегистр содержимого таймера/счетчик а. Доступен RW. T0PR, T1PR Регистр прескалера. Содержит число, при равенстве которому T0PC сбрасывается T0PC, T1PC Регистр содержимого прескаллера. Увеличивается каждый такт синхросигнала. Например: T0PR=10 ; Тогда значение T0TC будет увеличиваться через каждый 10 импульс синхросигнала. T0IR, T1IR Регистр прерывания. Биты соответствуют источнику прерывания, запись 1 – сбросу. T0TCR, T1TCRРегистр управления таймером/счетчиком.

4 4 РЕГИСТР ПРЕРЫВАНИЙ ТС T0IR, T1IR MROID0Флаг прерывания сравнения 0 MR1ID1Флаг прерывания сравнения 1 MR2ID2Флаг прерывания сравнения 2 MR3ID3Флаг прерывания сравнения 3 CR0ID4Флаг прерывания захвата 0 CR1ID5D5Флаг прерывания захвата 1 CR2ID6D6Флаг прерывания захвата 2 CR3ID7D7Флаг прерывания захвата 3 Доступен по чтению для определения источника прерывания и по записи для сброса прерывания

5 5 РЕГИСТР УПРАВЛНИЯ Т/С T0TCR, T1TCR EnableD0Разрешение работы ТС ResetD1Сброс таймера и прескалера mode0D0D0D1,D0 — поле режима ТС mode1D1D таймер по гребню PCLK счетчик по фронту CAP счетчик по срезу CAP счетчик по обоим CAP inpsel0D2D2 inpsel1D3D3 РЕГИСТР УПРАВЛНИЯ ИСТОЧНИКОМ T0CTCR, T1CTCR D3,D2 — поле CAP источника CAP0.0, CAP CAP0.1, CAP CAP0.2, CAP CAP0.3, CAP1.3

Читайте так же:
Если нет счетчиков тариф с 2015 года

6 6 Структура схемы подачи счетных импульсов на вход Т/С

7 7 РЕГИСТР УПРАВЛЕНИЯ СРАВНЕНИЕМ Т/С T0MСR, T1MCR ( [2] стр.194) MR0ID0 Флаг разрешения прерывания от канала сравнения 0 MR0RD1 MR0SD2 Флаг разрешения сброса Т/C от канала сравнения 0 Флаг разрешения останова счета Т/С от канала сравнения 0 MR1ID3D3 Флаг разрешения прерывания от канала сравнения 1 MR1RD4D4 MR1SD5D5 Флаг разрешения сброса Т/C от канала сравнения 1 Флаг разрешения останова счета Т/С от канала сравнения 1 MR2ID6D6 Флаг разрешения прерывания от канала сравнения 2 MR2RD7D7 MR2SD8D8 Флаг разрешения сброса Т/C от канала сравнения 2 Флаг разрешения останова счета Т/С от канала сравнения 2 MR3ID9 Флаг разрешения прерывания от канала сравнения 3 MR3RD10 Флаг разрешения сброса Т/C от канала сравнения 3

8 8 РЕГИСТР УПРАВЛЕНИЯ ВНЕШНИМ СРАВНЕНИЕМ Т/С T0EMR, T1EMR ( [2] стр.196) EM0D0 Бит отражает состояние выхода MAT0.0, MAT1.0 EM1D1 EM2D2 EM3D3D3 EMC0D5,D4 Биты управления режимом внешнего сравнения канала 0 Бит отражает состояние выхода MAT0.1, MAT1.1 Бит отражает состояние выхода MAT0.2, MAT1.2 Бит отражает состояние выхода MAT0.3, MAT1.3 EMC1D7,D6 Биты управления режимом внешнего сравнения канала 1 EMC2D9,D8 Биты управления режимом внешнего сравнения канала 2 EMC3D11,D10 Биты управления режимом внешнего сравнения канала – Нет управления выходом 0 1 – Сброс пина при событии 1 0 – Установка пина при событии 1 1 – Изменение состояния пина при событии

9 9 Структура работы схемы сравнения

10 10 РЕГИСТР УПРАВЛЕНИЯ ЗАХВАТОМ Т/С T0CR, T1CR ( [2] стр.195) CAP0RED0 Флаг разрешения записи в T0CR0 Т/С по фронту сигнала на CAP0.0 D1 CAP0ID2 CAP0FE Флаг разрешения записи в T0CR0 Т/С по срезу сигнала на CAP0.0 Флаг записи в T0CR0 Т/С и прерывания по сигналу на CAP0.0 CAP1RED3D3 Флаг разрешения записи в T0CR1 Т/С по фронту сигнала на CAP0.1 D4D4 CAP1ID5D5 CAP1FE Флаг разрешения записи в T0CR1 Т/С по срезу сигнала на CAP0.1 Флаг записи в T0CR1 Т/С и прерывания по сигналу на CAP0.1 CAP2RED6D6 Флаг разрешения записи в T0CR2 Т/С по фронту сигнала на CAP0.2 D7D7 CAP2ID8D8 CAP2FE Флаг разрешения записи в T0CR2 Т/С по срезу сигнала на CAP0.2 Флаг записи в T0CR2 Т/С и прерывания по сигналу на CAP0.2

Русские Блоги

Таймер STM32, прерывание таймера, PWM, захват ввода

оглавление

1: таймер STM32

Серия STM32F40X имеет в общей сложности 14 таймеров.

В этих трех таймерах мы чаще всего используются для общих таймеров, в то время как обычно используется общий таймер, 2, 3, 4, 5, 9, 14, потому что режим счетчика может быть только зафиксирован только / сравнивать каналы. Так что нет 2, 3, 4 и еще 5

2: Введение в общий таймер

  • 16/32 бит вверх, вниз, вверх / вниз (Center Align) Режим подсчета, автоматический счетчик нагрузки (Timx_Cnt)
  • 16-битный программируемый ( Может быть изменен в реальном времени ) Предварительный пропеллер (Timx_PSC), коэффициент разделения счетчика счетчика — любое значение от 1 до 65535

    4 независимых канала (TIMX_CH1

4), эти каналы могут быть использованы как:

  1. Введите захват (можно установить для измерения уровня или низкого уровня на штифте на штифте)
  2. Сравнение выходов (для управления выходными сигналами или указанием прошел определенный период)
  3. Генерация ШИМ (режим края или промежуточного выравнивания)
  4. Выход с одним импульсом (счетчик может быть запущен под загутком сигнала возбуждения и может генерировать программируемый импульсный импульсный импульс после программируемой задержки)
Читайте так же:
Установка счетчиков замена крана

  • Синхронные цепи, которые можно использовать для управления таймерами и соединениями таймера (может управлять другим таймером 1 таймер) с использованием внешних сигналов (TIMX_ETR)

  • Производить, когда происходит следующее событие Прерывание / dma. (6 отдельных генераторов запросов IRQ / DMA)
  1. Обновлять : Счетчик переполняет переполнение вверх / вниз / вниз, счетчик инициализируется (срабатывает программным обеспечением или внутренним / внешним)
  2. Триггерное событие (Счетчик начала, стоп, инициализация или внутренний / внешний подсчет триггера)
  3. Входной захват
  4. Сравнение выходов ,
  5. Поддержка увеличения (ортогонального) энкодер и сенсорная цепь зала для позиционирования
  6. Запусковая вход в виде внешних часов или циклов
  • использовать Таймер Прескалер с участием Предшественник часов RCC , Длительность импульсов и цикл волны может быть отрегулирован в нескольких микросекундах к нескольким миллисекундам, и каждый универсальный таймер STM32 Полностью независимый Нет ресурсов, которые не разделяют друг друга

3: Режим противодействия

Общий таймер может рассчитывать, подсчитать, двусторонний режим подсчета вниз

1: Режим UPPEX : Счетчик отсчитывает от 0 до автоматического значения нагрузки (Timx_Arr), затем повторно начать подсчет и генерирует событие счетчика переполнения

2: Режим подсчета вниз : Счетчик начинается от автоматической нагрузки (Timx_Arr) на вниз, затем начните со значения автоматической нагрузки и генерировать счетчик переполнения переполнения

3: Центральный режим выравнивания (Счетчик вверх / вниз): счетчик начинает подсчитать значение автоматической нагрузки от 0 -1 Создайте счетчик переполнения, затем Счет до 1 И генерировать счетчик переполнения; затем пересчитать от 0

4: процесс работы таймера

1. Создайте часы: Clock CK-PSC используется для генерации фиксированного таймера, со следующим источником:

  • Внутренний RCC снабжен часами CLK_INT, от UPB1 умноженные часы
  • Внешний PIN-код ETR
  • Внутренний входной порт спускового крючка 1

4, уровень таймера, выход таймера может использоваться в качестве входа другого таймера, ввода из TRGO

  • Внешний захват
  • 2. Временные базовые блоки включают в себя:

    • Регистрация счетчика (Timx_Cnt)
    • Pred-частотный регистр (Timx_PSC)
    • Автоматический регистр перегрузки (Timx_Arr)

    Я могу понять, что происходит от литерала, мне нечего сказать.

    3. Введите захват

    Например: Timx_CH1 входной сигнал (высота) проходит через край фильтра, к прессулеру (несколько растущих детектирования края один раз), затем для захвата / сравнения 1 регистра, генерируют некоторые события, используйте это событие, чтобы запомнить, когда значение CNT Счетчик является A, когда приходит входной сигнал CH1 (низкий), после вышеуказанного процесса, затем запишите значение B CNT, так что BA — продолжительность импульса.

    4: сравнение выхода

    Например: регистр захвата / сравнения устанавливает значение, когда значение счетчика в CNT больше, чем устанавливаемое значение, выведите высокий уровень на выходе, когда значение счетчика в CNT меньшее значение Выходным управлением для вывода низкого уровня, то вы можете получить PWM, мы управляем шириной импульса.

    ПРИМЕЧАНИЕ. Одна вещь, когда Timx_Ch1 и правое значение TIMX_CH1 и правой стороны левой стороны находятся в верхней части TIMX_CH1, а захват входа открывается на одном канале и включает сравнение выходных данных.

    5: прерывание таймера

    Мы используем внутренние часы, чтобы сделать ввод часов таймера

    Сверху мы видим, что CK_CNT поставляется от часов APB1

    Если коэффициент разделения APB1 не составляет 1, часы общего таймера равны 2 раза часам APB1.

    В случае функции SystemLnit по умолчанию

    AHB CLOCE = 168 м

    Apb1 clock = 42 м

    Таким образом, коэффициент разделения APB1 = AHB / APB1 = 4 (не 1)

    Поэтому универсальные таймер часов CK_INT = 2 * 42M = 84 м

    Некоторые регистры , не говорите больше, напрямую смотрите лист данных

    Основная работа конфигурации TIM3 выглядит следующим образом:

    Откройте прерывание таймера 3

    Шаги для этого, реализация прерывания таймера

    1. Включить часы таймера
    2. Таймер инициализации, настройка ARM, RSC
    3. Включите прерывание таймера, настройте NVIC
    4. Таймер
    5. Написание функции службы прерывания

    Режим модуляции ширины импульсов может генерировать один Регистрация Timx_Arr определяет частоту ,от Регистрация TIMX_CCRX определяет рабочий цикл сигнал

    В 4, четвертое сравнение выхода может быть использовано в качестве ШИМ

    Вышеуказанная фигура — это некоторые из битов, которые будут настроены.

    • CCR1: Регистрация сравнения захвата (значение), установить значение сравнения, является значением захвата / сравнения регистров
    • CCMR1: OC1M [2: 0] бит: для режима PWM используется для установки режима PWM 1 или 0
    • CCER: CC1P бит: вход / захват 1 выходная полярность 0: высокий уровень эффективный 1: низкий уровень эффективен
    • CCER: CC1E Bits: Enter / Capture 1 Выход Включить 0: Закрыть 1: Открыть

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

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

    Если вы хотите изменить значение сравнения, вы хотите изменить рабочий цикл PWM, вы можете вызвать Tim_setCompare1 (функцию) в стандартной библиотеке.

    7: Введите захват

    Чтобы настроить захват таймера, вышеупомянутая фигура — некоторые важные биты конфигурации.

    ICF [3: 0], это используется Частота входной выборки и длина цифрового фильтра

    Например: ICF [3: 0] = 0011 и установить IC1 на карту на канал 1 (см. Page 4 Блочная диаграмма), установлена ​​на растущий кромка триггера, затем в захвате роста края, затем входной частоту таймера, то входной частоту таймера Уровни на 8-м канале 1 непрерывно пробираются. Если это все высокие уровни, это будет действительный триггер, который вызывает прерывание входного захвата (если открывается), который можно отфильтровать из помех.

    CCIP: вход / захват 1 выходная полярность

    Здесь большой входной канал выбора Push, по CCI [1: 0]: Control

    IC1PSC [1: 0]: Enter / Capture 1 Pre-Proweller. Отказ Отказ Есть также предмет для настройки, не говори .

    Стучать на доске:

    Обнаружение краевого сигнала на TIMX_CHX, когда возникает краевой сигнал (например, роста ребра / падающего края), значение The Take Timer (Timx_Cnt) хранится в соответствующем регистре захвата / сравнения (Timx_CCRX), заполнить захват

    После включения прерывания захвата вы можете использовать Tim_GetCaptureX () в прерывании, чтобы получить текущее значение захвата.

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

    голоса
    Рейтинг статьи
    Ссылка на основную публикацию