23.09.2011, 15:53
|
|
Гражданин KAZUS.RU
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
|
Режим захвата в STM32
Уважаемые знатоки! Хочу мерить параметры ШИМ (время 1 уровня и период), проинитил таймер, но работать МК отказуется, в счетных регистрах нули, подскажите плиз, что я делаю не так:
// вывод capt на TIM2_ch3
GPIOB-›CRH &= ~GPIO_CRH_MODE10;
GPIOB-›CRH &= ~GPIO_CRH_CNF10;
RCC-›APB1ENR |=RCC_APB1ENR_TIM2EN;// таймер Capt
TIM2-›PSC = 1000;
TIM2-›ARR = 1000;
TIM2-›CCMR2=TIM_CCMR2_CC3S_0;// коммутируем IC3 на TI3
TIM2-›CCER=0; // захват по нарастающему фронту
TIM2-›CCMR2=TIM_CCMR2_CC3S_1;// коммутируем IC3 на TI3
TIM2-›CCER=TIM_CCER_CC4P; // захват по спадающему фронту
TIM2-›SMCR|= TIM_SMCR_TS_1 | TIM_SMCR_TS_0; // выбираем Internal trigger 3
TIM2-›SMCR|= TIM_SMCR_SMS_2; // Reset mode
TIM2-›CCER|= TIM_CCER_CC3E | TIM_CCER_CC4E;
TIM2-›CR1 = TIM_CR1_CEN | TIM_CR1_ARPE;
Опрос счетных регистров
TFT_wr_4dig ( 60,150, TIM2-›CCR3);
TFT_wr_4dig ( 60,180, TIM2-›CCR4);
Сигнал подается на вывод TIM2 CH3 (PB10)
__________________
То, что нас не убивает - делает нас сильнее
|
|
|
|
26.09.2011, 12:45
|
|
Гражданин KAZUS.RU
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
|
Re: Режим захвата в STM32
Сам разобрался, кому надо - берите код:
void T2_capt_init(void)
{
// вывод capt на TIM2_ch2
GPIOA-›CRL &= ~GPIO_CRL_MODE0;
GPIOA-›CRL &= ~GPIO_CRL_CNF0;
RCC-›APB1ENR |=RCC_APB1ENR_TIM2EN;// таймер Capt
TIM2-›PSC = 0xff;
TIM2-›ARR = 0xfff;
TIM2-›CCMR1&=~TIM_CCMR1_CC1S_0;// коммутируем IC2 на TI1
TIM2-›CCMR1|=TIM_CCMR1_CC1S_1;
TIM2-›CCER|=TIM_CCER_CC1P; //захват по спадающему фронту
TIM2-›CCMR1&=~TIM_CCMR1_CC2S_1;// коммутируем IC2 на TI2
TIM2-›CCMR1|=TIM_CCMR1_CC2S_0;
TIM2-›CCER&=~TIM_CCER_CC2P; // захват по нарастающему фронту
TIM2-›SMCR|= TIM_SMCR_TS_2 | TIM_SMCR_TS_1;
TIM2-›SMCR&= ~TIM_SMCR_TS_0;
TIM2-›SMCR|= TIM_SMCR_SMS_2; // Reset mode
TIM2-›SMCR&= ~TIM_SMCR_SMS_1;
TIM2-›SMCR&= ~TIM_SMCR_SMS_0;
TIM2-›CCER|= _BV(0) | _BV(4);
TIM2-›CR1 = TIM_CR1_CEN | TIM_CR1_ARPE;
return;
}
__________________
То, что нас не убивает - делает нас сильнее
|
|
|
|
24.02.2016, 21:28
|
|
Частый гость
Регистрация: 24.02.2016
Сообщений: 15
Сказал спасибо: 2
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Режим захвата в STM32
Код:
|
/// таймер TIM2 - IR , вход CH1 + CH4
TIM2-›PSC = 720;
TIM2-›CCMR1|=TIM_CCMR1_CC1S_0 | TIM_CCMR1_IC2F_3; //TI1FP1+фильтр
TIM2-›CCMR1 |= (TIM_CCMR1_OC2M_2|TIM_CCMR1_OC2M_1);
TIM2-›CCMR2|=TIM_CCMR2_CC4S_1 | TIM_CCMR2_IC4F_3; //TI1FP2+фильтр
TIM2-›CCR2 = 0xFFFC ; // детектор тишины
TIM4-›ARR = 0xFFFE;
TIM2-›SMCR = (5‹‹4) | 4; //TI1FP1+Reset Mode
TIM2-›CCER|= TIM_CCER_CC1E | TIM_CCER_CC4P | TIM_CCER_CC4E | TIM_CCER_CC2E;
TIM2-›DIER = TIM_DIER_CC1IE | TIM_DIER_CC2IE; // прерывание от захвата и тишины
TIM2-›CR1 = TIM_CR1_CEN; |
Следует внимательно отнестись к ремапу ножек таймера, не всегда получается идеальная ситуация.
|
|
|
|
24.02.2016, 23:07
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Режим захвата в STM32
Следует быть внимательным вообще, в первую очередь!
Не теребить покойничков, дату последней месаги видели? Это раз!
Ну и если что-то постите, то смотрите что. Это два!
TIM2-›CCR2 = 0xFFFC ; // детектор тишины
TIM4-›ARR = 0xFFFE; // ???????????????????????????????????
TIM2-›SMCR = (5‹‹4) | 4; //TI1FP1+Reset Mode
|
|
|
|
25.02.2016, 05:54
|
|
Частый гость
Регистрация: 24.02.2016
Сообщений: 15
Сказал спасибо: 2
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Режим захвата в STM32
Это инстал таймера для пульта. В классическом варианте можно не дождаться завершения ожидания повтора, и сама реакция на пульт будет очень тормозной.
TIM2-›CCR2 пишется время превышающее длительность повторно нажатой кнопки. Если оставить TIM4-›ARR в нулях - то прерывание по ожиданию TIM_DIER_CC2IE - не сработает.
И да, перекопал весь интернет - но ничего похожего кроме того что здесь - не обнаружил.
|
|
|
|
25.02.2016, 12:22
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Режим захвата в STM32
Сообщение от AVI-crak
|
Это инстал таймера для пульта.
|
И что в этом сакрального? Ващета, это PWM Input Mode, и имеется в наличии в каждом референсе.
Сообщение от AVI-crak
|
В классическом варианте можно не дождаться завершения ожидания повтора, и сама реакция на пульт будет очень тормозной.
|
А кто его видел то? И что это вообще за бред?
Сообщение от AVI-crak
|
TIM2-›CCR2 пишется время превышающее длительность повторно нажатой кнопки. Если оставить TIM4-›ARR в нулях - то прерывание по ожиданию TIM_DIER_CC2IE - не сработает.
|
Вечно вас прёт на крайности. То на АВР лабаете всю шнягу на одном таймере, то на СТМ под шнягу все таймера прибиваете. У вас четыре канала в таймере, на все случаи хватает.
Сообщение от AVI-crak
|
И да, перекопал весь интернет - но ничего похожего кроме того что здесь - не обнаружил.
|
Та ну? А зачем искать то, что и так понятно!?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:48.
|
|