Перейти к содержимому

#35. Timer Interrupts (Прерывания по таймеру)

В этом примере мы покажем, как включить прерывание TIM2. Так как это основано на работе, которую мы проделывали ранее, рассмотрим листинг программы ниже. В дополнение к настройке таймера необходимо настроить NVIC для соответствующего вектора прерывания и разрешить таймеру генерировать прерывания. Таймеры могут генерировать прерывания при нескольких условиях — здесь мы выбираем запуск прерываний при каждом обновлении счетчика. Наконец, нам нужен обработчик, который, как минимум, очищает ожидающее прерывание.

Timer Tick Interrupt:

// Configure clocks for GPIOA and TIM2
...
// Configure NVIC -- see preceding section
...
// Configure Timer
...
// Enable Timer Interrupt , enable timer
TIM_ITConfig(TIM2, TIM_IT_Update , ENABLE);
TIM_Cmd(TIM2, ENABLE);
while(1) { /* do nothing */ }
}
void TIM2_IRQHandler(void)
{
/* do something */
TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
}

Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x