TMRx control register 1 (TMRx_CTRL1)

Первый регистр управления таймерами TMR2/3/4/5

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

Reset value: 0x0000

15141312111098
Reserved CLKDIV[1:0]
------------------rwrw
00000000
76543210
ARPEN CAMSEL[1:0] CNTDIR SPMEN URSSEL UD CNTEN
rwrwrwrwrwrwrwrw
00000000


Bits 15:10
Reserved
Зарезервировано
Bits 9:8
CLKDIV[1:0]
Clock Divide Factor
Коэффициент связи между внутренней тактовой частотой таймера CK_INT и частотой дискретизации цифровых фильтров ETR, TIx

 00 : tdts = tck_int

 01 : tdts = 2 х tck_int

 10 : tdts = 4 х tck_int

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

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

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

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

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

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

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

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

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

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

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

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

Bit 3
SPMEN
Single Pulse Mode Enable
Режим одиночного импульса

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

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

Bit 2
URSSEL
Update Request Source Select
Выбор источника запроса на обновление счетчика

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

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

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

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

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

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

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

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

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

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

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

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

 0 :  стчетчик отключен

 1 :  стчетчик включен

CNTEN автоматически сбрасывается в режиме одного импульса при возникновении события обновления.

Режим счета внешних импульсов (external clock), стробирующий режим (gated mode) и режим энкодера (encoder mode) будут работать только при программно установленом бите CNTEN. В режиме триггера (trigger mode) бит CNTEN может быть установлен автоматически аппаратно.



//-  apm32f10x.h  -  v1.0.4

typedef struct
{
    /*  Countrol register 1  */
    union
    {
        __IOM uint32_t CTRL1;

        struct
        {
            __IOM uint32_t CNTEN           : 1;
            __IOM uint32_t UD              : 1;
            __IOM uint32_t URSSEL          : 1;
            __IOM uint32_t SPMEN           : 1;
            __IOM uint32_t CNTDIR          : 1;
            __IOM uint32_t CAMSEL          : 2;
            __IOM uint32_t ARPEN           : 1;
            __IOM uint32_t CLKDIV          : 2;
            __IM  uint32_t RESERVED        : 22;
        } CTRL1_B;
    };
    ...
}  TMR_T;

//-  apm32f10x.h  -  v1.0.0

typedef struct
{
    /*  Countrol register 1  */
    union
    {
        __IOM uint32_t CTRL1;

        struct
        {
            __IOM  uint32_t CNTEN       : 1;
            __IOM  uint32_t NGUE        : 1;
            __IOM  uint32_t UES         : 1;
            __IOM  uint32_t SPMEN       : 1;
            __IOM  uint32_t CNTDIR      : 1;
            __IOM  uint32_t CNTMODE     : 2;
            __IOM  uint32_t ARBEN       : 1;
            __IOM  uint32_t CKDR        : 2;
            __IM  uint32_t RESERVED     : 22;
        } CTRL1_B;
    };
    ...
}  TMR_T;