Электроника и программирование

Мигание светодиодом по таймеру

Обновлено 31.05.2024

В статье по первому запуску MIK32 мы запустили миганние светодиодом, задавая интервал в бесконечном цикле. Теперь исправим код в файле main.c так, чтобы светодиод мигал из прерывания по таймеру. Для этого в среде MikronIDE на панели Project Explorer скопируем наш проект blinky, и сохраним его под названием blinky_timer_irq. Затем откроем файл main.c, чтобы приступить к редактированию кода:

Копирование проекта

Теперь изменяем код следующим образом:

1) Включаем файл timer32.h, в котором содержатся определения констант для таймера:

Добавление заголовочного файла timer32.h

2) Включаем тактирование таймера32_0:

Включение тактирования таймера32_0

3) Настраиваем таймер32_0:

Настройка таймера32_0

4) Настраиваем контроллер прерываний:

Настройка контроллера прерываний

5) Включаем таймер:

Включение таймера32_0

6) Удаляем переключение светодиода из бесконечного цикла:

Удаление кода из бесконечного цикла

7) И добаляем обработчик прерывания от таймера:

Обработчик прерываний от таймера

Таким образом, у нас получился такой файл main.c:

⇓ main.c ⇓

На этом заканчиваем редактирование кода, нажимаем Project->Build Proiect. После успешной компилляции прошиваем плату, нажав Download and debug и Run:

Запуск отладки программы на отладочной плате

Как и раньше, светодиод на отладочной плате будет мигать и инвертироваться при нажатии кнопки. Но теперь мигание происходит по таймеру с интервалом ровно в 1 секунду.

Наверх Оглавление Следующая статья