Пытаюсь настроить таймер 1 для работы в следующем режиме:
таймер должен работать на внутренней частоте, а по приходу фронта импульса на вход ETR таймер должен перезагружаться и заново считать с 0. В Reference manual 008 вкратце дано описание этого режима:
Нажмите для просмотра прикрепленного файла
Настраиваю таймер так:
Код
TIM1->SMCR = TIM_SMCR_SMS_2; //SMS=Reset mode
TIM1->SMCR|= TIM_SMCR_TS_0|TIM_SMCR_TS_1|TIM_SMCR_TS_2; //External Trigger input (ETRF)
TIM1->ARR = 0xFFFF; //MAX period
TIM1->CR1 = TIM_CR1_CEN; //Timer enable
TIM1->SMCR|= TIM_SMCR_TS_0|TIM_SMCR_TS_1|TIM_SMCR_TS_2; //External Trigger input (ETRF)
TIM1->ARR = 0xFFFF; //MAX period
TIM1->CR1 = TIM_CR1_CEN; //Timer enable
При симуляции проекта тыкаю вход ETF (пин которого настроен как Input Floating) - реакции не наблюдаю. Если же в качестве источника TRGI использую TI1FP1 (вместо ETR) и на вход CH_1 таймера подаю импульс - то все работает как надо: по приходу импульса счетчик сбрасывается и начинает счет с 0. Это конечно выход из положения, но так не хочется занимать канал таймера ;(
Нажмите для просмотра прикрепленного файла
Камень - stm32f103, подскажите что не так?