Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Category:

Чудеса с таймером на STM32F030

Пару часов промучился после обеда с таймером. Вроде как привычные куски кода. Инициализация:

    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 аналогичный код работал правильно. Буду искать...
Tags: stm32, рукожопие
Subscribe

  • DHT22/DHT11 на STM32F103

    Добил шайтана! Сначала ожидал, что нужно будет полноценным захватом ШИМ пользоваться, но т.к. в протоколе неинформативная часть имеет постоянную…

  • Свеженькие железячки

    Получил сегодня с али ожидаемые железки, в т.ч. для восстановления моей файлопомойки. Во-первых, это блок питания на 16.8В, который я брал для…

  • BMP180 на STM32F103

    Добавил еще один сниппет — работа с BMP180 (датчик температуры и давления). Опять в даташите формула для вычисления "компенсированных" значений…

promo eddy_em august 17, 2019 12:33 3
Buy for 10 tokens
Юра намедни напечатал корпус для хронометра. Для первого блина получилось неплохо: И еще немного фотографий:
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 5 comments