03.11.2017 admin

РАБОТА 4. ТАЙМЕР И ПРЕРЫВАНИЯ


Команды запрещения и разрешения прерывания cli() и sei() дифференцируются по типам прерывания флажками (битами) регистров, в данном случае, битом TOIE0 регистра TIMSK.

Отличие от ранее рассмотренных программ небольшое. Во введении декларируется имя программы обработки прерывания ISR по событию сброса счетчика таймера и пишется ее содержимое: инверсия выходов порта. В главной программе присутствует формализованная строчка выбора режима TCCR0 работы (нулевого) таймера со счетчиком TCNT0. Выполнение программы обработки прерывания управляется флажком разрешения TIMSK. В эмуляторе тик таймера составляет 10 миллисекунд. На практике таймер тикает чаще. У более продвинутых моделей микроконтроллеров для варьирования времени срабатывания есть штатный регистр под порог накопления OCR0. Директива «volatile» указывает глобальные переменные, изменяемые при прерываниях. Это важно, поскольку оптимизатор компилятора Си удаляет формально никогда не выполняющиеся (в рамках программы) условия с ними и возникает ошибка.


Hide

Rambler's Top100