TIMx control register 1 (TIMx_CR1)
Первый регистр управления таймерами TIM2 - TIM5
Смещение (Address offset): 0x00
Reset value: 0x0000
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
Reserved | CKD[1:0] | ||||||
--- | --- | --- | --- | --- | --- | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
ARPE | CMS[1:0] | DIR | OPM | URS | UDIS | CEN | |
rw | rw | rw | rw | rw | rw | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
00 : tdts = tck_int
01 : tdts = 2 х tck_int
10 : tdts = 4 х tck_int
11 : зарезервировано
0 : буферизация регистра TIMx_ARR отключена
1 : буферизация регистра TIMx_ARR включена
00 : Режим выравнивания по краям. Счетчик ведет отсчет вверх или вниз в зависимости от бита направления (DIR).
01 : Режим выравнивания по центру 1. Счетчик ведет попеременный отсчет вверх и вниз. Флаги прерывания сравнения выходных данных для каналов, настроенных на вывод (регистр CCxS=00 в TIMx_CCMRx), устанавливаются только тогда, когда счетчик ведет обратный отсчет (вниз).
10 : Режим выравнивания по центру 2. Счетчик ведет попеременный отсчет вверх и вниз. Флаги прерывания сравнения выходных данных для каналов, настроенных на вывод (регистр CCxS=00 в TIMx_CCMRx), устанавливаются только тогда, когда счетчик ведет прямой отсчет (вверх).
11 : Режим выравнивания по центру 3. Счетчик ведет попеременный отсчет вверх и вниз. Флаги прерывания сравнения выходных данных для каналов, настроенных на вывод (регистр CCxS=00 в TIMx_CCMRx), устанавливаются, когда счетчик ведет как прямой, так и обратный отсчет.
0 : прямой счет (вверх)
1 : обратный счет (вниз)
0 : счетчик не останавливается при обновлении
1 : счетчик останавливается при обновлении (очищается бит CEN)
0 : следующие события (если включены) генерируют прерывания для обновления счетчика или запрос DMA:
- окончание прямого или обратного счета (overflow/underflow)
- установка бита UG
- генерация сигнала на обновление счетчика через контроллер подчинённого режима.
1 : только окончание прямого или обратного счета (overflow/underflow) генерирует прерывания для обновления счетчика или запрос DMA.
0 : Событие обновления (UEV) генерируется при:
- окончание прямого или обратного счета (overflow/underflow)
- установка бита UG
- генерация сигнала на обновление счетчика через контроллер подчинённого режима.
1 : События обновления не генерируются. Теневый регистры сохраняют свои значения (TIMx_ARR, TIMx_PSC, TIMx_CCRx). Однако счетчик и прескалер повторно инициализируются, если установлен бит UG, или если от контроллера ведомого режима получен аппаратный сброс.
0 : стчетчик отключен
1 : стчетчик включен
CEN автоматически сбрасывается в одноимпульсном режиме при возникновении события обновления.
Режим счета внешних импульсов (external clock), стробирующий режим (gated mode) и режим энкодера (encoder mode) будут работать только при программно установленом бите CEN. В режиме триггера (trigger mode) бит CEN может быть установлен автоматически аппаратно.
/******************* Bit definition for TIM_CR1 register ********************/
#define TIM_CR1_CEN ((uint16_t)0x0001) /* Counter enable */
#define TIM_CR1_UDIS ((uint16_t)0x0002) /* Update disable */
#define TIM_CR1_URS ((uint16_t)0x0004) /* Update request source */
#define TIM_CR1_OPM ((uint16_t)0x0008) /* One pulse mode */
#define TIM_CR1_DIR ((uint16_t)0x0010) /* Direction */
#define TIM_CR1_CMS ((uint16_t)0x0060) /* CMS[1:0] bits (Center-aligned mode selection) */
#define TIM_CR1_CMS_0 ((uint16_t)0x0020) /* Bit 0 */
#define TIM_CR1_CMS_1 ((uint16_t)0x0040) /* Bit 1 */
#define TIM_CR1_ARPE ((uint16_t)0x0080) /* Auto-reload preload enable */
#define TIM_CR1_CKD ((uint16_t)0x0300) /* CKD[1:0] bits (clock division) */
#define TIM_CR1_CKD_0 ((uint16_t)0x0100) /* Bit 0 */
#define TIM_CR1_CKD_1 ((uint16_t)0x0200) /* Bit 1 */