Прерывания AVR

Микроконтроллеры / Для начинающих / Архитектура /

Микроконтроллеры для начинающих Что нужно для того, чтобы стать профессиональным разработчиком программ для микроконтроллеров и выйти на такой уровень мастерства, который позволит с лёгкостью найти и устроиться на работу с высокой зарплатой (средняя зарплата программиста микроконтроллеров по России на начало 2017 года составляет 80 000 рублей). Подробнее...

В этом разделе описываются особенности обработки прерываний, выполняемых в ATtiny13A. Для получения общего объяснения обработки прерываний AVR обратитесь к разделу Сброс и обработка прерываний.

Векторы прерываний

Векторы прерываний ATtiny13A описаны в таблице 9-1.

Таблица 9-1. Векторы сброса и прерываний.

№ вектора Адрес программы Источник Определение прерывания
1 0х0000 RESET Внешний вывод, сброс при включении питания, сброс по детектору напряжения, сброс по сторожевому таймеру
2 0х0001 INT0 Запрос на внешнее прерывание 0
3 0х0002 PCINT0 Запрос на прерывание по смене состояния вывода 0
4 0х0003 TIM0_OVF Переполнение таймера/счётчика
5 0х0004 EE_RDY EEPROM Готовность
6 0х0005 ANA_COMP Аналоговый компаратор
7 0х0006 TIM0_COMPA Сравнение на совпадение таймера/счётчика А
8 0х0007 TIM0_COMPB Сравнение на совпадение таймера/счётчика В
9 0х0008 WDT Сторожевой таймер
10 0х0009 ADC Преобразование завершено

Если программа никогда не включает источник прерывания, то векторы прерываний не используются, и в этих местах может быть размещен обычный программный код.

Наиболее ходовой и общей настройкой программы для адресов вектора прерываний и сброса в ATtiny13A является:

Адрес   Метки    Код             Комментарии
0x0000           rjmp RESET      ; Обработчик сброса
0x0001           rjmp EXT_INT0   ; Обработчик IRQ0
0x0002           rjmp PCINT0     ; Обработчик PCINT0
0x0003           rjmp TIM0_OVF   ; Обработчик переполнения Timer0
0x0004           rjmp EE_RDY     ; Обработчик готовности EEPROM
0x0005           rjmp ANA_COMP   ; Обработчик аналогового компаратора
0x0006           rjmp TIM0_COMPA ; Обработчик Timer0 CompareA
0x0007           rjmp TIM0_COMPB ; Обработчик Timer0 CompareB
0x0008           rjmp WATCHDOG   ; Обработчик  прерывания по  
                                 ; сторожевому таймеру
0x0009           rjmp ADC        ; Обработчик преобразования АЦП
;
0x000A  RESET:   ldi r16, low(RAMEND) ; Запуск главной программы
0x000B           out SPL,r16     ; Установить указатель стека 
                                 ; на вершину RAM
0x000C           sei             ; Включить прерывания
0x000D           <instr> xxx
... ... ... ...


Вступить в группу "Основы программирования"

Подписаться на RUTUBE-канал

Подписаться на Дзен-канал

Подписаться на рассылки по программированию

Микроконтроллеры для ЧАЙНИКОВ Микроконтроллеры для ЧАЙНИКОВ

Бесплатная рассылка о микроконтроллерах. Рассылка содержит как бесплатную информацию для начинающих, так и ссылки на платные продукты (книги, видеокурсы и др.) для тех, кто захочет вникнуть в тему более глубоко. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика