СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №9/2014

ЭЛЕМЕНТЫ И КОМПОНЕНТЫ 29 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 9 2014 void TIM7_IRQHandler() { TIM7->SR &= ~TIM_SR_UIF; // Обнулить флаг // Выполнить операции } void TIM6_DAC_IRQHandler() { // Если событие от TIM6 if(TIM6->SR & TIM_SR_UIF) { TIM6->SR &= ~TIM_SR_UIF; // Обнулить флаг // Выполнить операции } } Рассмотрим пример программы для организации задержки на базовом тай- мере TIM6, которая использует преры- вания от таймера. Для контроля выпол- нения программы задействуем один из выводов микроконтроллера для управ- ления светодиодными индикаторами, которые должны будут переключаться с периодичностью, определяемой про- граммной задержкой, организованной на таймере TIM6. Пример такой программы приведён в листинге 2. В данной программе функция задержки вызывается один раз, после чего процессор может выполнять дру- гие операции, а таймер будет регуляр- но формировать прерывания с задан- ным интервалом задержки. Аналогичнуюпрограммуможнонапи- сать и для таймера TIM7. Отличие такой программыбудет состоять вименахреги- стровиназванииобработчика прерыва- ния. Обработчик прерывания таймера TIM6имеет одну особенность, связанную с тем, что векторобработкипрерывания этого таймера объединён с прерывани- ем от цифро-аналогового преобразова- теля (ЦАП). Поэтому вфункцииобработ- чика прерывания выполняетсяпроверка источника прерывания. Подробнее озна- комиться с таймерамимикроконтролле- ра STM32 можно на сайте St.com [2]. Для таймера существует множество других задач, описанных выше, кото- рые он может успешно решить. Поэто- му его применение в программе значи- тельно облегчает нагрузку на процес- сор и делает программу эффективнее. Л ИТЕРАТУРА 1. www.st.com . 2. www.st.com/web/en/resource/technical/docu- ment/reference_manual/CD00246267.pdf.

RkJQdWJsaXNoZXIy MTQ4NjUy