TIMx control register 1 (TIMx_CR1)

Первый регистр управления таймерами TIM2 - TIM5

Смещение (Address offset): 0x00

Reset value: 0x0000

15141312111098
Reserved CKD[1:0]
------------------rwrw
00000000
76543210
ARPE CMS[1:0] DIR OPM URS UDIS CEN
rwrwrwrwrwrwrwrw
00000000


Bits 15:10
Reserved
Must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bits 9:8
CKD[1:0]
Clock division
Коэффициент связи между внутренней тактовой частотой таймера CK_INT и частотой дискретизации цифровых фильтров ETR, TIx

 00 : tdts = tck_int

 01 : tdts = 2 х tck_int

 10 : tdts = 4 х tck_int

 11 : зарезервировано

Bit 7
ARPE
Auto-reload preload enable
Включение предварительной загрузки (буферизации) регистра TIMx_ARR:

 0 : буферизация регистра TIMx_ARR отключена

 1 : буферизация регистра TIMx_ARR включена

Bits 6:5
CMS[1:0]
Center-aligned mode selection
Выбор режима выравнивания по центру:

 00 : Режим выравнивания по краям. Счетчик ведет отсчет вверх или вниз в зависимости от бита направления (DIR).

 01 : Режим выравнивания по центру 1. Счетчик ведет попеременный отсчет вверх и вниз. Флаги прерывания сравнения выходных данных для каналов, настроенных на вывод (регистр CCxS=00 в TIMx_CCMRx), устанавливаются только тогда, когда счетчик ведет обратный отсчет (вниз).

 10 : Режим выравнивания по центру 2. Счетчик ведет попеременный отсчет вверх и вниз. Флаги прерывания сравнения выходных данных для каналов, настроенных на вывод (регистр CCxS=00 в TIMx_CCMRx), устанавливаются только тогда, когда счетчик ведет прямой отсчет (вверх).

 11 : Режим выравнивания по центру 3. Счетчик ведет попеременный отсчет вверх и вниз. Флаги прерывания сравнения выходных данных для каналов, настроенных на вывод (регистр CCxS=00 в TIMx_CCMRx), устанавливаются, когда счетчик ведет как прямой, так и обратный отсчет.

Bit 4
DIR
Direction
Направление счета

 0 : прямой счет (вверх)

 1 : обратный счет (вниз)

Bit 3
OPM
One-pulse mode
Режим одного импульса

 0 : счетчик не останавливается при обновлении

 1 : счетчик останавливается при обновлении (очищается бит CEN)

Bit 2
URS
Update request source
Источник запроса на обновление счетчика

 0 : следующие события (если включены) генерируют прерывания для обновления счетчика или запрос DMA:

- окончание прямого или обратного счета (overflow/underflow)

- установка бита UG

- генерация сигнала на обновление счетчика через контроллер подчинённого режима.

 1 : только окончание прямого или обратного счета (overflow/underflow) генерирует прерывания для обновления счетчика или запрос DMA.

Bit 1
UDIS
Update disable
Запрет обновления счетчика

 0 : Событие обновления (UEV) генерируется при:

- окончание прямого или обратного счета (overflow/underflow)

- установка бита UG

- генерация сигнала на обновление счетчика через контроллер подчинённого режима.

 1 : События обновления не генерируются. Теневый регистры сохраняют свои значения (TIMx_ARR, TIMx_PSC, TIMx_CCRx). Однако счетчик и прескалер повторно инициализируются, если установлен бит UG, или если от контроллера ведомого режима получен аппаратный сброс.

Bit 0
CEN
Counter enable
Разрешение работы счетчика

 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 */