TIMx capture/compare mode register 2 (TIMx_CCMR2) - Output compare mode
Второй регистр режимов захвата/сравнения таймеров TIM2-TIM5 - режим сравнения выходных данных
Смещение (Address offset): 0x1С
Reset value: 0x0000
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
OC4CE | OC4M[2:0] | OC4PE | OC4FE | CC4S[1:0] | |||
rw | rw | rw | rw | rw | rw | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
OC3CE | OC3M | OC3PE | OC3FE | CC3S | |||
rw | rw | rw | rw | rw | rw | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Каждый канал может быть настроен на ввод - режим захвата (capture mode) или на вывод - режим сравнения (compare mode). Направление работы канала определяется настройкой битов CCxS[1:0]. Остальные биты этого регистра выполняют разные функции в режимах ввода или вывода.
Ниже описаны функции битов регистра при настройке канала на вывод - режим сравнения выходных данных (compare mode).
0 : нет действий
1 : OC4REF сбрасывается при высоком уровне сигнала ETRF
000 : Frosen - "застывший". Сравнение счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR4 не оказывает влияние на выходной сигнал OC4REF. Этот режим применяется для формирования и использования временных промежутков в программе без управления внешними устройствами.
001 : Set channel to active level - устанавливает высокий уровень сигнала OC4REF при совпадении счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR4.
010 : Set channel to inactive level - устанавливает низкий уровень сигнала OC4REF при совпадении счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR4.
011 : Toggle - переключает уровень сигнала OC4REF на противоположный при совпадении счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR4.
100 : Force inactive level - принудительно устанавливает низкий уровень сигнала OC4REF независимо от значений счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR4.
101 : Force active level - принудительно устанавливает высокий уровень сигнала OC4REF независимо от значений счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR4.
110 : PWM mode 1 - При счете вверх высокий уровень сигнала OC4REF пока TIMx_CNT < TIMx_CCR4. При достижении равенства OC4REF сбрасывается. При обратном счете низкий уровень сигнала OC4REF пока TIMx_CNT > TIMx_CCR4. При достижении равенства устанавливается высокий уровень сигнала OC4REF.
111 : PWM mode 2 - При счете вверх низкий уровень сигнала OC4REF пока TIMx_CNT < TIMx_CCR4. При достижении равенства устанавливается высокий уровень сигнала OC4REF. При обратном счете высокий уровень сигнала OC4REF пока TIMx_CNT > TIMx_CCR4. При достижении равенства OC4REF сбрасывается.
В PWM mode уровень OC4REF изменяется только при изменении результата сравнения счетчика TIMx_CNT и регистра TIMx_CCR4, или при переключении из режима Frosen в PWM mode.
0 : буферизация отключена. Записанное в регистр TIMx_CCR4 значение начинает использоваться немедленно.
1 : буферизация включена. Записанное в регистр TIMx_CCR4 значение будет использовано после события обновления (UEV).
Ускорение эффекта на выходе канала от воздействия триггерного события на входе.
0 : обычное функционирование канала. Уровень сигнала на выходе определяется сравнением значений счетчика TIMx_CNT и регистра сравнения TIMx_CCR4. При работе в подчинённом режиме минимальная задержка в установке сигнала на выходе от активного фронта на входе составляет 5 периодов тактового сигнала.
1 : активный фронт сигнала на триггерном входе устанавливает на выходе уровень, соответствующий срабатыванию схемы сравнения независимо от фактического результата сравнения. Задержка в установке сигнала на выходе от активного фронта на входе сокращается до 3 тактов. Работает только в режимах PWM1 или PWM2.
00 : канал настроен на выход
01 : канал настроен на вход, входной сигнал TI2
10 : канал настроен на вход, входной сигнал TI1
11 : канал настроен на вход, входной сигнал TRC. Этот режим работает если выбран вход внутреннего триггера (биты TS[2:0] регистра TIMx_SMCR)
Биты CC4S[1:0] доступны для записи только при выключенном канале (CC4E=0 в TIMx_CCER)
0 : нет действий
1 : OC3REF сбрасывается при высоком уровне сигнала ETRF
000 : Frosen - "застывший". Сравнение счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR3 не оказывает влияние на выходной сигнал OC3REF. Этот режим применяется для формирования и использования временных промежутков в программе без управления внешними устройствами.
001 : Set channel to active level - устанавливает высокий уровень сигнала OC3REF при совпадении счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR3.
010 : Set channel to inactive level - устанавливает низкий уровень сигнала OC3REF при совпадении счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR3.
011 : Toggle - переключает уровень сигнала OC3REF на противоположный при совпадении счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR3.
100 : Force inactive level - принудительно устанавливает низкий уровень сигнала OC3REF независимо от значений счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR3.
101 : Force active level - принудительно устанавливает высокий уровень сигнала OC3REF независимо от значений счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR3.
110 : PWM mode 1 - При счете вверх высокий уровень сигнала OC3REF пока TIMx_CNT < TIMx_CCR3. При достижении равенства OC3REF сбрасывается. При обратном счете низкий уровень сигнала OC3REF пока TIMx_CNT > TIMx_CCR3. При достижении равенства устанавливается высокий уровень сигнала OC3REF.
111 : PWM mode 2 - При счете вверх низкий уровень сигнала OC3REF пока TIMx_CNT < TIMx_CCR3. При достижении равенства устанавливается высокий уровень сигнала OC3REF. При обратном счете высокий уровень сигнала OC3REF пока TIMx_CNT > TIMx_CCR3. При достижении равенства OC3REF сбрасывается.
В PWM mode уровень OC3REF изменяется только при изменении результата сравнения счетчика TIMx_CNT и регистра TIMx_CCR3, или при переключении из режима Frosen в PWM mode.
0 : буферизация отключена. Записанное в регистр TIMx_CCR3 значение начинает использоваться немедленно.
1 : буферизация включена. Записанное в регистр TIMx_CCR3 значение будет использовано после события обновления (UEV).
Ускорение эффекта на выходе канала от воздействия триггерного события на входе.
0 : обычное функционирование канала. Уровень сигнала на выходе определяется сравнением значений счетчика TIMx_CNT и регистра сравнения TIMx_CCR3. При работе в подчинённом режиме минимальная задержка в установке сигнала на выходе от активного фронта на входе составляет 5 периодов тактового сигнала.
1 : активный фронт сигнала на триггерном входе устанавливает на выходе уровень, соответствующий срабатыванию схемы сравнения независимо от фактического результата сравнения. Задержка в установке сигнала на выходе от активного фронта на входе сокращается до 3 тактов. Работает только в режимах PWM1 или PWM2.
00 : канал настроен на выход
01 : канал настроен на вход, входной сигнал TI2
10 : канал настроен на вход, входной сигнал TI1
11 : канал настроен на вход, входной сигнал TRC. Этот режим работает если выбран вход внутреннего триггера (биты TS[2:0] регистра TIMx_SMCR)
Биты CC3S[1:0] доступны для записи только при выключенном канале (CC3E=0 в TIMx_CCER)
/****************** Bit definition for TIM_CCMR2 register *******************/
#define TIM_CCMR2_CC3S ((uint16_t)0x0003) /* CC3S[1:0] bits (Capture/Compare 3 Selection) */
#define TIM_CCMR2_CC3S_0 ((uint16_t)0x0001) /* Bit 0 */
#define TIM_CCMR2_CC3S_1 ((uint16_t)0x0002) /* Bit 1 */
#define TIM_CCMR2_OC3FE ((uint16_t)0x0004) /* Output Compare 3 Fast enable */
#define TIM_CCMR2_OC3PE ((uint16_t)0x0008) /* Output Compare 3 Preload enable */
#define TIM_CCMR2_OC3M ((uint16_t)0x0070) /* OC3M[2:0] bits (Output Compare 3 Mode) */
#define TIM_CCMR2_OC3M_0 ((uint16_t)0x0010) /* Bit 0 */
#define TIM_CCMR2_OC3M_1 ((uint16_t)0x0020) /* Bit 1 */
#define TIM_CCMR2_OC3M_2 ((uint16_t)0x0040) /* Bit 2 */
#define TIM_CCMR2_OC3CE ((uint16_t)0x0080) /* Output Compare 3 Clear Enable */
#define TIM_CCMR2_CC4S ((uint16_t)0x0300) /* CC4S[1:0] bits (Capture/Compare 4 Selection) */
#define TIM_CCMR2_CC4S_0 ((uint16_t)0x0100) /* Bit 0 */
#define TIM_CCMR2_CC4S_1 ((uint16_t)0x0200) /* Bit 1 */
#define TIM_CCMR2_OC4FE ((uint16_t)0x0400) /* Output Compare 4 Fast enable */
#define TIM_CCMR2_OC4PE ((uint16_t)0x0800) /* Output Compare 4 Preload enable */
#define TIM_CCMR2_OC4M ((uint16_t)0x7000) /* OC4M[2:0] bits (Output Compare 4 Mode) */
#define TIM_CCMR2_OC4M_0 ((uint16_t)0x1000) /* Bit 0 */
#define TIM_CCMR2_OC4M_1 ((uint16_t)0x2000) /* Bit 1 */
#define TIM_CCMR2_OC4M_2 ((uint16_t)0x4000) /* Bit 2 */
#define TIM_CCMR2_OC4CE ((uint16_t)0x8000) /* Output Compare 4 Clear Enable */