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