Добрый день, форумчане.
Не получается сделать сброс при первом запуске таймера TIM1 на микроконтроллере stm32f030f4p6, т.е. при первом запуске не выдерживается задержка.
- Код:
RCC->APB2ENR |= RCC_APB2ENR_TIM1EN;
NVIC_SetPriority(TIM1_BRK_UP_TRG_COM_IRQn, 1);
NVIC_EnableIRQ(TIM1_BRK_UP_TRG_COM_IRQn);
TIM1->PSC = 48 - 1;
TIM1->ARR = 20 - 1;
TIM1->EGR |= TIM_EGR_UG;
TIM1->SR &= ~TIM_SR_UIF;
TIM1->DIER |= TIM_DIER_UIE;
TIM1->CR1 |= TIM_CR1_CEN;
После установки бита UG получаю событие UIF, т.е. должны были бы обновиться регистры, но на самом деле первая задержка генерируется не 20мкс, а 89мкс. После этого идет уже 20мкс. В прерывании пока дергаю выход, чтобы можно было отследить анализатором.
Где может быть косяк?
Спасибо.
- Вложения
-
- image.png
- (28.62 KiB) Скачиваний: 263
Последний раз редактировалось
gruffi Ср сен 25, 2019 15:22:54, всего редактировалось 1 раз.