pav256 (04.07.2013 13:14, просмотров: 228) ответил vmp на 14.3.19. TIMx and external trigger synchronization. Slave mode: Reset mode.
Как я понял, "trigger controller" - работает с одной нитью событий, будь то сброс счетчика или подача на него внешней частоты. В "Slave mode: Reset mode" CNT тактируется от внутреннего генератора. Если это не так прошу выложить/исправить код настройки.
// CH1 - вход счетного канала (PE5); CH2 - вход защелки (PE6)
void instal_TIM9(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM9, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //альтернативная фу-ия
GPIO_Init(GPIOE, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource5, GPIO_AF_TIM9);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_Init(GPIOE, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource6, GPIO_AF_TIM9);
TIM9->SMCR = TIM_SMCR_TS_2 | TIM_SMCR_TS_0 | // вход синхронизации CNT - TI1FP1;
TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0; // режим синхронизации CNT - внешняя частота
TIM9->CCMR1 = TIM_CCMR1_CC1S_0 | 0x3<<4 | // IC1 - вход CH1; фильтр - 3
TIM_CCMR1_CC2S_0 | 0x3<<12; // IC2 - вход CH2; фильтр - 3
TIM9->CCER = TIM_CCER_CC2E; // захват по 2-му каналу
TIM9->PSC = 0; // предделитель счетчика (+1)
TIM9->ARR = -1; // автозагрузчик счетчика
TIM9->CR1 = TIM_CR1_CEN; // включение счетчика
return;
}