eddy_em: (Default)
[personal profile] eddy_em
Пару часов промучился после обеда с таймером. Вроде как привычные куски кода. Инициализация:

    TIM14->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0;
    TIM14->PSC = 999; // 48kHz
    TIM14->CCER = TIM_CCER_CC1E;
    TIM14->DIER = TIM_DIER_UIE;
    NVIC_EnableIRQ(TIM14_IRQn);
    NVIC_SetPriority(TIM14_IRQn, 0);

Аналогично для TIM3. Потом установка скорости:

    TIM_TypeDef *TIMx = nmotor ? TIM3 : TIM14;
    TIMx->ARR = stphigharr[nmotor];
    TIMx->CCR1 = TIMx->ARR >> 1;
    TIMx->CR1 |= TIM_CR1_CEN;

Начинаю со скорости в 10 раз меньше номинальной, дальше разгон, в конце — торможение. Все тупо, внутри обработчика прерывания...
Запускаю — и вместо положенных 80Гц (48кГц/600 — начальная скорость) вижу около 3Гц (с осциллографом буду завтра разбираться, смотрел на светодиод). На 042 аналогичный код работал правильно. Буду искать...
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

October 2025

S M T W T F S
   1234
567 89 1011
121314 15161718
19202122232425
2627 28293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 26th, 2026 03:28 am
Powered by Dreamwidth Studios