Методические указания к лабораторным работам со стендом stk500 и мк atmega16


Скачать 0.69 Mb.
Название Методические указания к лабораторным работам со стендом stk500 и мк atmega16
страница 4/7
Тип Методические указания
rykovodstvo.ru > Руководство эксплуатация > Методические указания
1   2   3   4   5   6   7

Сброс и обработка прерываний


В ATmega16 предусмотрен 21 источник прерываний. Эти прерывания и сброс имеют различные векторы в области памяти программ. Каждому из прерываний присвоен отдельный бит, разрешающий данное прерывание при установке бита в 1, если бит I регистра состояния SREG разрешает общее обслуживание прерываний.

Самые младшие адреса памяти программ определены как векторы сброса и прерываний. Полный список векторов прерываний приведен в таблице 2. Этот список определяет и приоритет различных прерываний. Меньшие адреса соответствуют более высокому уровню приоритета. Самый высокий уровень у RESET (сброс), следующий приоритет у INT0 - внешнего запроса прерывания 0 и т.д.

Таблица 5. Сброс и векторы прерываний.

Номер вектора

Адрес

Источник

Описание прерывания

1

$000

RESET

Вывод сброса и сброс от сторо­жевого таймера

2

$002

INT0

Внешнее прерывание 0

3

$004

INT1

Внешнее прерывание 1

4

$006

TIMER2 COMP

Совпадение таймера/счетчика 2

5

$008

TIMER2 OVF

Переполнение таймера/счетчика 2

6

$00A

TIMER1 CAPT

Захват таймера/счетчика 1

7

$00С

TIMER1 COMPA

Совпадение таймера/счетчика 1

8

$00E

TIMER1 COMPB

Совпадение таймера/счетчика 1

9

$010

TIMER1 OVF

Переполнение таймера/счетчика 1

10

$012

TIMER0 OVF

Переполнения таймера/счетчика 0

11

$014

SPI, STC

Полная последовательная передача

12

$016

USART, RXC

Usart, Rx complete

13

$018

USART, UDRE

Usart регистр данных пустой

14

$01A

USART, TXC

Usart, Tx complete

15

$01C

ADC

Аналого-цифровой преобразователь

16

$01E

EE_RDY

EEPROM Ready

17

$020

ANA_COMP

Аналоговый компаратор

18

$022

TWI

Двух - проводной последовательный интерфейс

19

$024

INT2

Внешнее прерывание 2

20

$026

TIMER0 COMP

Совпадение таймера/счетчика 0

21

$028

SPM_RDY

Загрузка программной памяти готова

Чаще всего используется следующая установка векторов прерываний в программе:

Адрес Метка Код Комментарий

$000 jmp RESET ; Reset Handler

$002 jmp EXT_INT0 ; IRQ0 Handler

$004 jmp EXT_INT1 ; IRQ1 Handler

$006 jmp TIM2_COMP ; Timer2 Compare Handler

$008 jmp TIM2_OVF ; Timer2 Overflow Handler

$00A jmp TIM1_CAPT ; Timer1 Capture Handler

$00C jmp TIM1_COMPA ; Timer1 CompareA Handler

$00E jmp TIM1_COMPB ; Timer1 CompareB Handler

$010 jmp TIM1_OVF ; Timer1 Overflow Handler

$012 jmp TIM0_OVF ; Timer0 Overflow Handler

$014 jmp SPI_STC ; SPI Transfer Complete Handler

$016 jmp USART_RXC ; USART RX Complete Handler

$018 jmp USART_UDRE ; UDR Empty Handler

$01A jmp USART_TXC ; USART TX Complete Handler

$01C jmp ADC ; ADC Conversion Complete Handler

$01E jmp EE_RDY ; EEPROM Ready Handler

$020 jmp ANA_COMP ; Analog Comparator Handler

$022 jmp TWSI ; Two-wire Serial Interface Handler

$024 jmp EXT_INT2 ; IRQ2 Handler

$026 jmp TIM0_COMP ; Timer0 Compare Handler

$028 jmp SPM_RDY ; Store Program Memory Ready Handler

;

$02A RESET: ldi r16,high(RAMEND ) ; Main program start

$02B out SPH,r16 ; Set Stack Pointer to top of RAM

$02C ldi r16,low(RAMEND)

$02D out SPL,r16

$02E sei ; Enable interrupts

$02F xxx

... ... ...

Обработка прерываний
ATmega16 регистр управления прерыванием GIСR - Общий регистр управления прерывания, регулирует размещение вектора прерывания. Когда возникает прерывание, общий бит разрешения прерываний I очи­щается (ноль) и прерывания запрещаются. Программа пользователя может установить этот бит для разрешения прерываний. Флаг разрешения преры­ваний I устанавливается в 1 при выполнении команды выхода из прерыва­ния - RETI.

Для прерываний включаемых статическими событиями (т.е. переключа­емыми уровнем) (например совпадение значения счетчика/таймера 1 с регистром совпадения) флаг прерывания взводится, когда происходит событие. Ес­ли флаг прерывания очищен и присутствует условие возникновения преры­вания, флаг не будет установлен, пока не произойдет следующее собы­тие.

Когда программный счетчик устанавливается на текущий вектор пре­рывания для обработки прерывания, соответствующий флаг, сгенерированный прерыванием, аппаратно сбрасывается. Некоторые флаги прерывания могут быть сброшены записью логической единицы в бит соответствующий флагу.


Бит
Чт./зап. (R/W)

Начальн. знач.

7

6

5

4

3

2

1

0




INT1

INT0

INT2

-

-

-

IVSEL

IVCE

GICR

R/W

R/W

R

R

R

R

R/W

R/W




0

0

0

0

0

0

0

0

Бит 1 - IVSEL: Выбор вектора прерывания

Когда бит IVSEL очищен (0), Векторы Прерывания установлены в начале Flash - памяти. Когда этот бит установлен (1), векторы прерывания перемещены на начало секции Загрузчика (Boot Loader) в Flash - памяти.

Бит 0 - IVCE: Векторное изменение прерывания Допустимый бит IVCE должен быть установлен в логическую 1, чтобы применить изменение бита IVSEL. IVCE ОЧИЩЕН аппаратными четырьмя циклами после того, как будет записано или когда IVSEL записан.

ОБЩИЙ РЕГИСТР ФЛАГОВ ПРЕРЫВАНИЙ - GIFR


Бит

$3A($5A)

Чт./зап. (R/W)

Начальн. знач.

7

6

5

4

3

2

1

0




INTF1

INTF0

INTF2

-

-

-

-

-

GIFR

R/W

R/W

R

R

R

R

R

R




0

0

0

0

0

0

0

0


Бит 7 - INTF1: Флаг внешнего прерывания 1: При возникновении на выводе INT1 события, вызывающего прерывание, INTF1 устанавливается в "1". Если установлены бит I регистра SREG и бит INT1 в GIMSK, происходит переход на вектор прерывания по адресу $004. Флаг очищается после выполнения обработчика прерывания. Кроме того, флаг можно очистить, записав в него логическую единицу.

Бит 6 - INTF0: Флаг внешнего прерывания 0: При возникновении на выводе INT0 события вызывающего прерывание, INTF0 устанавливается в "1". Если установлены бит I регистра SREG и бит INT0 в GIMSK, происходит переход на вектор прерывания по адресу $002. Флаг очищается после выполнения обработчика прерывания. Кроме того, флаг можно очистить, записав в него логическую единицу.

Бит 5 - INTF2: Флаг внешнего прерывания 0: При возникновении на выводе INT0 события вызывающего прерывание, INTF0 устанавливается в "1". Если установлены бит I регистра SREG и бит INT0 в GIMSK, происходит переход на вектор прерывания по адресу $024. Флаг очищается после выполнения обработчика прерывания. Кроме того, флаг можно очистить, записав в него логическую единицу.

Биты 4..0 - зарезервированы. В AT90S2313 эти биты зарезервированы и всегда читаются как 0.
РЕГИСТР МАСКИ ПРЕРЫВАНИЯ ОТ ТАЙМЕРОВ/СЧЕТЧИКОВ - TIMSK

Бит

$39($59)

Чт./зап. (R/W)

Начальн.знач.

7

6

5

4

3

2

1

0




OCIE2

TOIE2

TICIE1

OCIE1A

OCIE1B

TOIE1

OCIE0

TOIE0

TIMSK

R/W

R/W

R

R

R/W

R

R/W

R




0

0

0

0

0

0

0

0


Бит 7 – OCIE2: Разрешение прерывания по совпадению таймера/счетчика 1: Если установлены бит OCIE2 и бит разрешения прерывания в регистре состояния, разрешены прерывания по совпадению таймера/счетчика 1. Прерывание (вектор $006) выполняется при равенстве таймера/счетчика 1 и регистра совпадения. В регистре флагов TIFR устанавливается ("1") флаг совпадения.

Бит 6 – TOIE2: Разрешение прерывания по переполнению таймера/счетчика 2: Если установлен этот бит и бит разрешения прерываний в регистре состояния, разрешены прерывания по переполнению таймера/счетчика 2. Соответствующее прерывание (вектор $008) выполняется при переполнении таймера/счетчика 2. В регистре флагов таймеров/счетчиков (TIFR) устанавливается флаг переполнения. Если таймер/счетчик 1 работает в режиме ШИМ, флаг переполнения устанавливается при изменении направления счета, при значении $0000.

Бит 5 - TICIE1: Разрешение прерывания по входу захвата: Если установлены бит TICIE1 и бит разрешения прерывания в регистре состояния, разрешены прерывания по входу захвата. Соответствующее прерывание (вектор $00A) выполняется по сигналу захвата на выводе 11 (PD6/ICP). В регистре флагов TIFR устанавливается ("1") флаг захвата.

Бит 4 - OCIE1A: Разрешение прерывания по совпадению таймера/счетчика 1: Если установлены бит OCIE1A и бит разрешения прерывания в регистре состояния, разрешены прерывания по совпадению таймера/счетчика 1. Прерывание (вектор $00C) выполняется при равенстве таймера/счетчика 1 и регистра совпадения. В регистре флагов TIFR устанавливается ("1") флаг совпадения.

Бит 3 - OCIE1B: Разрешение прерывания по совпадению таймера/счетчика 1: Если установлены бит OCIE1B и бит разрешения прерывания в регистре состояния, разрешены прерывания по совпадению таймера/счетчика 1. Прерывание (вектор $00E) выполняется при равенстве таймера/счетчика 1 и регистра совпадения. В регистре флагов TIFR устанавливается ("1") флаг совпадения.

Бит 2 - TOIE1: Разрешение прерывания по переполнению таймера/счетчика 1: Если установлен этот бит и бит разрешения прерываний в регистре состояния, разрешены прерывания по переполнению таймера/счетчика 1. Соответствующее прерывание (вектор $010) выполняется при переполнении таймера/счетчика 1. В регистре флагов таймеров/счетчиков (TIFR) устанавливается флаг переполнения. Если таймер/счетчик 1 работает в режиме ШИМ, флаг переполнения устанавливается при изменении направления счета, при значении $0000.

Бит 1 – OCIE0: Разрешение прерывания по совпадению таймера/счетчика 1: Если установлены бит OCIE0 и бит разрешения прерывания в регистре состояния, разрешены прерывания по совпадению таймера/счетчика 1. Прерывание (вектор $026) выполняется при равенстве таймера/счетчика 1 и регистра совпадения. В регистре флагов TIFR устанавливается ("1") флаг совпадения.

Бит 0 - TOIE0: Разрешение прерывания по переполнению таймера/счетчика 0. Если этот бит установлен в 1, и бит I в регистре состояния установлен в 1, разрешены прерывания по переполнению таймера/счетчика 0. При возникновении переполнения выполняется соответствующий вектор прерывания ($006). Флаг переполнения (TOV0) в регистре флагов прерываний (TIFR) таймеров/счетчиков устанавливается в 1.

РЕГИСТР ФЛАГОВ ПРЕРЫВАНИЙ ОТ ТАЙМЕРОВ/СЧЕТЧИКОВ – TIFR


Бит

$38($58)

Чт./зап. (R/W)

Начальн.знач.

7

6

5

4

3

2

1

0




OCF2

TOV2

ICF1

OCF1A

OCF1B

TOV1

OCF0

TOV0

TIFR

R/W

R/W

R

R

R/W

R

R/W

R




0

0

0

0

0

0

0

0


Бит 7 - OCF2: Флаг выхода совпадения T/C2: флаг устанавливается в "1" если происходит совпадение значения таймера/счетчика 2 и данных в регистре OCR. Флаг очищается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно сбросить записав в него логическую единицу. Если установлены бит I в SREG и бит OCIE2 в TIMSK, при установке бита OCF2 выполняется прерывание.

Бит 6 – TOV2: Флаг переполнения таймера/счетчика 2: Флаг TOV2 устанавливается ("1") при переполнении таймера/счетчика 0. Флаг сбрасывается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно очистить записав в него логическую единицу. Если установлены бит I в SREG и бит TOIE2 в TIMSK, при установке бита TOV2 выполняется прерывание по переполнению таймера/счетчика 2.

Бит 5 - ICF1: флаг входа захвата 1: бит устанавливается ("1") при возникновении события захвата по входу, он индицирует, что значение таймера/счетчика 1 скопировано в регистр захвата по входу ICR1. ICF1 очищается при выполнении соответствующего вектора обработки прерывания. Кроме того, флаг можно очистить, записав в него логическую единицу.

Бит 4 - OCF1A: Флаг выхода совпадения 1А: флаг устанавливается в "1" если происходит совпадение значения таймера/счетчика 1 и данных в регистре OCR1A. Флаг очищается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно сбросить записав в него логическую единицу. Если установлены бит I в SREG и бит OCIE1A в TIMSK, при установке бита OCF1A выполняется прерывание.

Бит 3 - OCF1B: Флаг выхода совпадения 1B: флаг устанавливается в "1" если происходит совпадение значения таймера/счетчика 1 и данных в регистре OCR1B. Флаг очищается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно сбросить записав в него логическую единицу. Если установлены бит I в SREG и бит OCIE1B в TIMSK, при установке бита OCF1B выполняется прерывание.

Бит 2 - TOV1: Флаг переполнения таймера/счетчика 1: Флаг TOV1 устанавливается ("1") при возникновении переполнения таймера/счетчика 1. Флаг TOV1 сбрасывается аппаратно при выполнении соответствующего вектора обработки прерывания. Кроме того, флаг можно сбросить, записав в него логическую единицу. Если установлены бит I в SREG и бит TOIE1 в TIMSK, при установке бита TOV1 выполняется прерывание по переполнению таймера/счетчика 1. В режиме ШИМ этот бит устанавливается, когда таймер/счетчик 1 изменяет направление счета при значении $0000.

Бит 1 - OCF0: Флаг выхода совпадения T/C0: флаг устанавливается в "1" если происходит совпадение значения таймера/счетчика 2 и данных в регистре OCR. Флаг очищается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно сбросить записав в него логическую единицу. Если установлены бит I в SREG и бит OCIE0 в TIMSK, при установке бита OCF0 выполняется прерывание.

Бит 0 - TOV0: Флаг переполнения таймера счетчика 1: Флаг TOV0 устанавливается ("1") при переполнении таймера/счетчика 0. Флаг сбрасывается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно очистить записав в него логическую единицу. Если установлены бит I в SREG и бит TOIE0 в TIMSK, при установке бита TOV0 выполняется прерывание по переполнению таймера/счетчика 0.
1   2   3   4   5   6   7

Похожие:

Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Методические указания к лабораторным работам по дисциплине “
Методические указания к лабораторным работам по дисциплине “Нормативные документы и должностные инструкции” / А. Г. Куприянов, А....
Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Методические указания к лабораторным работам «спектрофотометрический анализ»
Методические указания к лабораторным работам «спектрофотометрический анализ» по спецкурсу «оптические методы анализа» для студентов...
Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Методические указания к лабораторным работам по курсу «Новые разделы информатики»
Данные методические указания «Мультимедиа технологии»к лабораторным работам могут быть полезны студентам и преподавателям смежных...
Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Методические указания к лабораторным работам по курсу «Новые разделы информатики»
Данные методические указания «Мультимедиа технологии»к лабораторным работам могут быть полезны студентам и преподавателям смежных...
Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon О. Р. Никитин Специализация по теме диссертации Методические указания...
Методические указания к лабораторным работам предназначены для бакалавров направления 210400 «Радиотехника» и специальности 210600...
Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Методические указания к лабораторным работам по дисциплине «микроэлектронные устройства»
Горохов А. В, Пичугина Л. П. Методические указания к лабораторным работам по дисциплине «Микроэлектронные устройства». – М.: Ргу...
Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Методические указания к лабораторным работам №№1÷4 по дисциплине «Web-программирование»
Отчеты по лабораторным работам оформляются в электронном виде с именами авт-500 Иванов, Петров (лр1). doc (или *. docx, *. rtf, *....
Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Вычислительная техника ” схемотехника методические указания к лабораторным работам самара 2000
Схемотехника: Метод указания к лабораторным работам / Самар гос техн ун-т; Сост. И. В. Воронцов, В. П. Золотов. Самара, 2000, 59...
Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Методические указания к лабораторным и домашним работам по дисциплине «Операционные системы»

Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Методические указания к лабораторным работам по дисциплине «Физико-химические методы анализа»
Методические указания составили: доценты: С. А. Соколова, О. В. Перегончая, Л. Ф. Науменко, А. К. Решетникова, О. В. Дьяконова,,...
Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Методические указания к выполнению лабораторных работ Омск 2006
П. С. Гладкий, Е. А. Костюшина, М. Е. Соколов, Проектирование баз данных: Методические указания к лабораторным работам. Омск: Издательство:...
Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Методические указания к лабораторным работам по дисциплине «Технологии...
Лабораторная работа 2 Составление календарного плана разработки портала вуза 16
Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Методические указания по проведению лабораторных работ по дисциплине «Информатика»
Методические указания по проведению лабораторных работ предназначены для студентов гоапоу «Липецкий металлургический колледж» технических...
Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Методические указания по проведению лабораторных работ по дисциплине «Информатика»
Методические указания по проведению лабораторных работ предназначены для студентов гоапоу «Липецкий металлургический колледж» технических...
Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Методические указания по дисциплине пд. 02 Химия для выполнения лабораторных...
Методические указания и задания к лабораторно-практическим занятиям для студентов специальности 35. 02. 05 Агрономия по дисциплине...
Методические указания к лабораторным работам со стендом stk500 и мк atmega16 icon Методические указания и задания к лабораторным работам по дисциплине...
...

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск