Control register 2 (TMRx_CTRL2)
Второй регистр управления таймерами TMR2/3/4/5
Смещение (Address offset): 0x04
Reset value: 0x0000
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
Reserved | |||||||
--- | --- | --- | --- | --- | --- | --- | --- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
TI1SEL | MMSEL[2:0] | CCDSEL | Reserved | ||||
rw | rw | rw | rw | rw | --- | --- | --- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 : к входу первого канала таймера TI1 подключен вывод (pin) TIMx_CH1 контроллера
1 : к входу первого канала таймера TI1 подключена логическая XOR комбинация выводов TIMx_CH1, TIMx_CH2, TIMx_CH3
000 : Reset - бит UG (Update generation) регистра TIMx_EGR используется как выход TRGO (повторная инициализация счетчика и обновление регистров). Если сброс генерируется триггерным входом (контроллер подчиненного режима в режиме сброса), то сигнал на TRGO подается с задержкой по сравнению с фактическим сбросом.
001 : Enable - сигнал включения счетчика CNT_EN используется как выход TRGO. Применяется для запуска нескольких счетчиков одновременно или для управления окном разрешения счета для подчинённых таймеров. Сигнал включения счетчика генерируется с помощью логики ИЛИ между управляющим битом CEN и триггерным входом, если он настроен в стробирующем режиме (gated mode).
010 : Update - событие обновления (UEV) используется как выход TRGO. Например: главный таймер может быть использован в качестве предварительного делителя для подчиненного таймера.
011 : Compare Pulse - на выходе TRGO формируется положительный импульс при установке флага CC1IF (даже если он уже был установлен)
100 : Compare - OC1REF используется как выход TRGO
101 : Compare - OC2REF используется как выход TRGO
110 : Compare - OC3REF используется как выход TRGO
111 : Compare - OC4REF используется как выход TRGO
0 : Запрос DMA отправляется по событию capture/compare
1 : Запрос DMA отправляется по событию update
//- apm32f10x.h - v1.0.4
typedef struct
{ ...
/* Countrol register 2 */
union
{
__IOM uint32_t CTRL2;
struct
{
__IOM uint32_t CCPEN : 1;
__IM uint32_t RESERVED1 : 1;
__IOM uint32_t CCUSEL : 1;
__IOM uint32_t CCDSEL : 1;
__IOM uint32_t MMSEL : 3;
__IOM uint32_t TI1SEL : 1;
__IOM uint32_t OC1OIS : 1;
__IOM uint32_t OC1NOIS : 1;
__IOM uint32_t OC2OIS : 1;
__IOM uint32_t OC2NOIS : 1;
__IOM uint32_t OC3OIS : 1;
__IOM uint32_t OC3NOIS : 1;
__IOM uint32_t OC4OIS : 1;
__IM uint32_t RESERVED2 : 17;
} CTRL2_B;
};
...
} TMR_T;
//- apm32f10x.h - v1.0.0
typedef struct
{
/* Countrol register 2 */
union
{
__IOM uint32_t CTRL2;
struct
{
__IOM uint32_t CCBEN : 1;
__IM uint32_t RESERVED1 : 1;
__IOM uint32_t CCUS : 1;
__IOM uint32_t CCDS : 1;
__IOM uint32_t MMFC : 3;
__IOM uint32_t TI1IS : 1;
__IOM uint32_t CH1ISO : 1;
__IOM uint32_t CH1NISO : 1;
__IOM uint32_t CH2ISO : 1;
__IOM uint32_t CH2NISO : 1;
__IOM uint32_t CH3ISO : 1;
__IOM uint32_t CH3NISO : 1;
__IOM uint32_t CH4ISO : 1;
__IM uint32_t RESERVED2 : 17;
} CTRL2_B;
} ;
...
} TMR_T;