Задача своевременного запуска обработчика таймера решена.
Но хочу разобраться как связан бит
UG c формированием запроса не прерывание .
Согласно описанию :
Цитата
Prescaler description
The prescaler can divide the counter clock frequency by any factor between 1 and 65536. It
is based on a 16-bit counter controlled through a 16-bit register (in the TIMx_PSC register).
It can be changed on the fly as this control register is buffered. The new prescaler ratio is
taken into account at the next update event.
Т.е. чтобы вызвать появление
Update event (UEV) нужно чтобы счетчик досчитал до
ARR. Поэтому я перед тем как Разрешить прерывание запускаю счетчик и естественным путем вызываю
Update event (UEV) , а потом сбрасываю запрос на прерывание :
Код
TIM2->ARR=(1);
TIM2->PSC=(65535-1);
TIM2->DIER|=(TIM_DIER_UIE); // разрешаем прерывание по срабатыванию таймера
TIM2->CR1|=(TIM_CR1_CEN); // Запуск Таймера
//TIM2->EGR = TIM_EGR_UG; // генерим событие таймера
__NOP();
__NOP();
__NOP();
TIM2->SR =~(TIM_SR_UIF);// сброс ф.прерывания
__NOP();
NVIC_ClearPendingIRQ (TIM2_IRQn);
/* Разрешение прерывания TIM2 */
NVIC_EnableIRQ(TIM2_IRQn);
Почему тогда в этом случае , не происходит сброс запроса на прерывание ?