5.1.4.1.5. Режим сравнения

Каждый таймер микроконтроллеров STM32 имеет 4 канала схем сравнения. В базовом режиме сравнения генерируется событие захвата, если обнаруживается совпадение состояния счетчика с 16-битным значением, хранящимся в регистре захвата/сравнения. Данное событие может использоваться для изменения состояния связанного с каналом захвата/сравнения вывода, генерации сброса таймера, прерывания или ПДП-передачи.

В режиме сравнения, каждый канал может использоваться для генерации прерывания или изменения состояния CAP/COM при совпадении содержимого регистра сравнения с текущим содержимым счетчика

5.1.4.1.6. Режим широтно-импульсной модуляции

Помимо базового режима сравнения, каждый таймер поддерживает специальный режим генерации ШИМ-сигналов. В этом режиме период ШИМ задается с помощью регистра автоматической перезагрузки таймера. Значение заполнения импульсов задается через регистр захвата/сравнения канала. Таким образом, каждый таймер может генерировать до четырех независимых ШИМ-сигналов. Позже мы увидим, что таймеры могут работать и синхронизированно, позволяя генерировать до 16 синхронизированных ШИМ-сигналов.

Каждый таймер поддерживает специальный режим ШИМ, в котором можно генерировать ШИМ-сигналы с выравниванием по фронту или центру

В каждом канале можно генерировать ШИМ-сигнал с выравниванием по фронту или по центру. В режиме с выравниванием по фронту, падающий фронт импульса всегда совпадает с моментом перезагрузки таймера. Изменение значения в регистре захвата/сравнения позволяет легко управлять моментом возникновения нарастающего фронта ШИМ-сигнала. В режиме с выравниванием по центру, таймер конфигурируется как реверсивный счетчик, который сначала считает в прямом направлении, а затем - в обратном. Когда будет выявлено совпадение счетчика с регистром захвата/сравнения канала, инвертируется состояние выходного сигнала канала.

TIM2->CR1 = 0x00000000; //по умолчанию

TIM2->PSC = 0x000000FF; //установка макс. знач. предделителя

TIM2->ARR = 0x00000FFF; //установка макс. перезагружаемого знач.

TIM2->CCMR1 = 0x00000068; //Устанавливаем режим ШИМ

TIM2->CCR1 = 0x000000FF; //Задаем стартовое значение ШИМ

TIM2->CCER = 0x00000101; //разрешаем выхода канала 1

TIM2->DIER = 0x00000000; //разрешаем обновление прерывания

TIM2->EGR = 0x00000001; //разрешаем обновление

TIM2->CR1 = 0x00000001; //разрешаем работу таймера

5.1.4.1.7. Режим одновибратора

Как в базовом режиме сравнения, так и в режиме ШИМ блоки таймеров непрерывно генерируют прямоугольные импульсы. Однако, при необходимости, в каждом из таймеров можно задействовать опциональный режим одновибратора для генерации одиночного импульса. Данный режим, по сути, является особой версией режима ШИМ, в котором генерация ШИМ-сигнала инициируется внешним сигналом запуска (внешний вывод или выход запуска любого другого таймера) и длится один цикл. В результате генерируется один импульс с программируемой задержкой и длительностью.

В режиме одновибратора можно сгенерировать одиночный импульс с программируемой задержкой и длительностью

Соседние файлы в папке ПЦиПУ. материалы для Курсового проекта Тютякин А.В.