TIMx capture/compare mode register 2 (TIMx_CCMR2) - Input capture mode
Второй регистр режимов захвата/сравнения таймеров TIM2-TIM5 - режим захвата входных данных
Смещение (Address offset): 0x1C
Reset value: 0x0000
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
IC4F[3:0] | IC4PSC[1:0] | 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 |
IC3F[3:0] | IC3PSC[1:0] | CC3S | |||||
rw | rw | rw | rw | rw | rw | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Каждый канал может быть настроен на ввод - режим захвата (capture mode) или на вывод - режим сравнения (compare mode). Направление работы канала определяется настройкой битов CCxS[1:0]. Остальные биты этого регистра выполняют разные функции в режимах ввода или вывода.
Ниже описаны функции битов регистра при настройке канала на ввод - режим захвата входных данных (capture mode).
0000 : fsampling = fdts; фильтра нет
0001 : fsampling = fck_int; N = 2
0010 : fsampling = fck_int; N = 4
0011 : fsampling = fck_int; N = 8
0100 : fsampling = fdts/2; N = 6
0101 : fsampling = fdts/2; N = 8
0110 : fsampling = fdts/4; N = 6
0111 : fsampling = fdts/4; N = 8
1000 : fsampling = fdts/8; N = 6
1001 : fsampling = fdts/8; N = 8
1010 : fsampling = fdts/16; N = 5
1011 : fsampling = fdts/16; N = 6
1100 : fsampling = fdts/16; N = 8
1101 : fsampling = fdts/32; N = 5
1110 : fsampling = fdts/32; N = 6
1111 : fsampling = fdts/32; N = 8
Определяет коэффициент деления сигнала IC4 на входе регистра захвата/сравнения TIMx_CCR4. Коэффициент деления сбрасывается при отключении захвата входного сигнала:
00 : предделитель отключен. захват выполняется на каждом активном фронте (событии) входного сигнала.
01 : захват выполняется за 2 входных события
10 : захват выполняется за 4 входных события
11 : захват выполняется за 8 входных событий
00 : канал настроен на выход
01 : канал настроен на вход, входной сигнал TI4
10 : канал настроен на вход, входной сигнал TI3
11 : канал настроен на вход, входной сигнал TRC. Этот режим работает если выбран вход внутреннего триггера (биты TS[2:0] регистра TIMx_SMCR)
Биты CC4S[1:0] доступны для записи только при выключенном канале (CC4E=0 в TIMx_CCER)
0000 : fsampling = fdts; фильтра нет
0001 : fsampling = fck_int; N = 2
0010 : fsampling = fck_int; N = 4
0011 : fsampling = fck_int; N = 8
0100 : fsampling = fdts/2; N = 6
0101 : fsampling = fdts/2; N = 8
0110 : fsampling = fdts/4; N = 6
0111 : fsampling = fdts/4; N = 8
1000 : fsampling = fdts/8; N = 6
1001 : fsampling = fdts/8; N = 8
1010 : fsampling = fdts/16; N = 5
1011 : fsampling = fdts/16; N = 6
1100 : fsampling = fdts/16; N = 8
1101 : fsampling = fdts/32; N = 5
1110 : fsampling = fdts/32; N = 6
1111 : fsampling = fdts/32; N = 8
Определяет коэффициент деления сигнала IC3 на входе регистра захвата/сравнения TIMx_CCR3. Коэффициент деления сбрасывается при отключении захвата входного сигнала:
00 : предделитель отключен. захват выполняется на каждом активном фронте (событии) входного сигнала.
01 : захват выполняется за 2 входных события
10 : захват выполняется за 4 входных события
11 : захват выполняется за 8 входных событий
00 : канал настроен на выход
01 : канал настроен на вход, входной сигнал TI3
10 : канал настроен на вход, входной сигнал TI4
11 : канал настроен на вход, входной сигнал TRC. Этот режим работает если выбран вход внутреннего триггера (биты TS[2:0] регистра TIMx_SMCR)
Биты CC3S[1:0] доступны для записи только при выключенном канале (CC3E=0 в TIMx_CCER)
/****************** Bit definition for TIM_CCMR2 register *******************/
#define TIM_CCMR2_IC3PSC ((uint16_t)0x000C) /* IC3PSC[1:0] bits (Input Capture 3 Prescaler) */
#define TIM_CCMR2_IC3PSC_0 ((uint16_t)0x0004) /* Bit 0 */
#define TIM_CCMR2_IC3PSC_1 ((uint16_t)0x0008) /* Bit 1 */
#define TIM_CCMR2_IC3F ((uint16_t)0x00F0) /* IC3F[3:0] bits (Input Capture 3 Filter) */
#define TIM_CCMR2_IC3F_0 ((uint16_t)0x0010) /* Bit 0 */
#define TIM_CCMR2_IC3F_1 ((uint16_t)0x0020) /* Bit 1 */
#define TIM_CCMR2_IC3F_2 ((uint16_t)0x0040) /* Bit 2 */
#define TIM_CCMR2_IC3F_3 ((uint16_t)0x0080) /* Bit 3 */
#define TIM_CCMR2_IC4PSC ((uint16_t)0x0C00) /* IC4PSC[1:0] bits (Input Capture 4 Prescaler) */
#define TIM_CCMR2_IC4PSC_0 ((uint16_t)0x0400) /* Bit 0 */
#define TIM_CCMR2_IC4PSC_1 ((uint16_t)0x0800) /* Bit 1 */
#define TIM_CCMR2_IC4F ((uint16_t)0xF000) /* IC4F[3:0] bits (Input Capture 4 Filter) */
#define TIM_CCMR2_IC4F_0 ((uint16_t)0x1000) /* Bit 0 */
#define TIM_CCMR2_IC4F_1 ((uint16_t)0x2000) /* Bit 1 */
#define TIM_CCMR2_IC4F_2 ((uint16_t)0x4000) /* Bit 2 */
#define TIM_CCMR2_IC4F_3 ((uint16_t)0x8000) /* Bit 3 */