TMRx control register 1 (TMRx_CTRL1)
Первый регистр управления таймерами TMR2/3/4/5
Смещение (Address offset): 0x00
Reset value: 0x0000
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
Reserved | CLKDIV[1:0] | ||||||
--- | --- | --- | --- | --- | --- | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
ARPEN | CAMSEL[1:0] | CNTDIR | SPMEN | URSSEL | UD | CNTEN | |
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 : буферизация регистра TMRx_AUTORLD отключена
1 : буферизация регистра TMRx_AUTORLD включена
00 : Режим выравнивания по краям. Счетчик ведет отсчет вверх или вниз в зависимости от бита направления (CNTDIR).
01 : Режим выравнивания по центру 1. Счетчик ведет попеременный отсчет вверх и вниз. Флаги прерывания сравнения выходных данных для каналов, настроенных на вывод (регистр в ), устанавливаются только тогда, когда счетчик ведет обратный отсчет (вниз).
10 : Режим выравнивания по центру 2. Счетчик ведет попеременный отсчет вверх и вниз. Флаги прерывания сравнения выходных данных для каналов, настроенных на вывод (регистр в ), устанавливаются только тогда, когда счетчик ведет прямой отсчет (вверх).
11 : Режим выравнивания по центру 3. Счетчик ведет попеременный отсчет вверх и вниз. Флаги прерывания сравнения выходных данных для каналов, настроенных на вывод (регистр в ), устанавливаются, когда счетчик ведет как прямой, так и обратный отсчет.
0 : прямой счет (счет вверх)
1 : обратный счет (счет вниз)
0 : счетчик не останавливается при обновлении
1 : счетчик останавливается при обновлении (очищается бит CNTEN)
0 : следующие события (если включены) генерируют прерывания для обновления счетчика или запрос DMA:
- окончание прямого или обратного счета (overflow/underflow)
- установка бита UEG
- генерация сигнала на обновление счетчика через контроллер подчинённого режима.
1 : только окончание прямого или обратного счета (overflow/underflow) генерирует прерывания для обновления счетчика или запрос DMA.
0 : Событие обновления (UEV) генерируется при:
- окончание прямого или обратного счета (overflow/underflow)
- установка бита UEG
- генерация сигнала на обновление счетчика через контроллер подчинённого режима.
1 : События обновления не генерируются. Теневые регистры сохраняют свои значения (AUTORLD, PSC, CCx). Однако счетчик и прескалер повторно инициализируются, если установлен бит UEG, или если от контроллера ведомого режима получен аппаратный сброс.
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;