Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Прерывания AVR
Микроконтроллеры / Для начинающих / Архитектура /Что нужно для того, чтобы стать профессиональным разработчиком программ для микроконтроллеров и выйти на такой уровень мастерства, который позволит с лёгкостью найти и устроиться на работу с высокой зарплатой (средняя зарплата программиста микроконтроллеров по России на начало 2017 года составляет 80 000 рублей). Подробнее... |
В этом разделе описываются особенности обработки прерываний, выполняемых в ATtiny13A. Для получения общего объяснения обработки прерываний AVR обратитесь к разделу Сброс и обработка прерываний.
Векторы прерываний
Векторы прерываний ATtiny13A описаны в таблице 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-канал Подписаться на Дзен-канал Подписаться на рассылки по программированию |
Микроконтроллеры для ЧАЙНИКОВ
Бесплатная рассылка о микроконтроллерах. Рассылка содержит как бесплатную информацию для начинающих, так и ссылки на платные продукты (книги, видеокурсы и др.) для тех, кто захочет вникнуть в тему более глубоко. Подробнее... |