Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/24: Рейтинг темы: голосов - 24, средняя оценка - 4.71
kri_s_
1

atmega16 прерывания

21.02.2013, 12:24. Просмотров 4705. Ответов 7
Метки нет (Все метки)

Друзья, всем привет!
Подскажите, пожалуйста. Пытаюсь собрать программку из книжки Ревича про нажатие кнопки с таймером и прерываниями на pinboard 1.

В таком варианте не работает:
Код
;==========I?a?uaaiey==========
rjmp RESIT
rjmp INT0MY
rjmp INT1MY
reti
reti
reti
reti
reti
reti
rjmp TIMER0OVF
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
А вот так работает:
Код
;==========I?a?uaaiey==========
rjmp RESIT
nop
rjmp INT0MY
nop
rjmp INT1MY
nop
reti
nop
reti
nop
reti
nop
reti
nop
reti
nop
reti
nop
rjmp TIMER0OVF
nop
reti
nop
reti
nop
reti
nop
reti
nop
reti
nop
reti
nop
reti
nop
reti
nop
reti
nop
reti
nop
reti
В документации к atmega написано что адрес в таблице прерываний INT0- $002, TIMER0OVF- $012. У меня получается $004 и $024 соответственно.
Код
:020000020000FC
:100000004AC0000026C0000034C00000189500005F
:10001000189500001895000018950000189500002C
:100020001895000029C000001895000018950000E0
:10003000189500001895000018950000189500000C
:1000400018950000189500001895000018950000FC
:10005000189500270BBF0FEF0ABF30FF05C03E7F8A
:10006000239528BB12E302C0316010E803E003BF10
:10007000189502E008BB18951A9509F01895002705
:1000800003BF30FD03C002E004BF02C00AE004BFAA
:1000900000E40BBF18950FE50DBF0CE002BB0FEF9E
:1000A00007BB2227332701E009BF0AE005BF00ECA8
:0600B0000BBF7894FFCFA6
:00000001FF
Почему работает во втором варианте, а не в первом??

Спасибо!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2013, 12:24
Ответы с готовыми решениями:

ATMega16, Timer1 - прерывания по сравнению
народ кто сможет ответить на вопрос: кантралер atmega16A, работает от внешнего кварца 12МГц... В...

Внешние прерывания для AtMega16
Всем ,привет!)Подскажите пожалуйста:как правильно написать код программы для внешнего прерывания?Ну...

AtMega16 T1 ШИМ CTC прерывания по OCR - мин. длительность?
Приветствую Форумчане! в моей задаче мне нужно при помощи микроконтроллера avr генерить импульсы...

Вызов прерывания в обработке прерывания
В программе,нажатие кнопки вызывает прерывание,в котором оно обрабатывается.Попутно в обработке...

7
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 178
21.02.2013, 13:04 2
Цитата Сообщение от kri_s_
Почему работает во втором варианте, а не в первом??
Спасибо!
Ну раз производитель решил, что метка прерывания INT0 расположена по адресу 0x002, то пусть так и будет. Вам-то что от этого? А связано это с размером (размером памяти МК и с размером существующей команды jmp, которая в отличие от rjmp занимает 4 байта (или 2 слова). Отличия ведь между jmp и rjmp Вы ведь знаете? Вкратце: с помощью rjmp переход к метке ограничен (не помню цифры), а jmp прыгнет так прыгнет!
Я так считаю...
0
kri_s_
21.02.2013, 14:17 3
Цитата Сообщение от tromzystor
Цитата Сообщение от kri_s_
Почему работает во втором варианте, а не в первом??
Спасибо!
Ну раз производитель решил, что метка прерывания INT0 расположена по адресу 0x002, то пусть так и будет. Вам-то что от этого? А связано это с размером (размером памяти МК и с размером существующей команды jmp, которая в отличие от rjmp занимает 4 байта (или 2 слова). Отличия ведь между jmp и rjmp Вы ведь знаете? Вкратце: с помощью rjmp переход к метке ограничен (не помню цифры), а jmp прыгнет так прыгнет!
Я так считаю...

Спасибо за ответ!

Я думал у attiny2313 прерывание INT0 тоже по адресу 0x002 от того и не понимал почему на atmega не работает.

rjmp насколько я помню короткий относительный переход, jmp длинный прямой переход?
А в attiny2313 команда jmp вообще есть? Почему там по одному машинному слову выделили на вектор прерывания?
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 178
21.02.2013, 14:46 4
В тини использование команды jmp (даже если она там и есть) бессмысленно, ибо объем МК таков, что и с помощью rjmp можно прыгнуть с начала в конец.
0
kri_s_
21.02.2013, 14:57 5
Цитата Сообщение от tromzystor
В тини использование команды jmp (даже если она там и есть) бессмысленно, ибо объем МК таков, что и с помощью rjmp можно прыгнуть с начала в конец.
в attiny2313 2k памяти = 1024 адреса. 8бит - это 256 адресов, так? тогда как из начала в конец?
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 178
21.02.2013, 15:24 6
В attiny 2k памяти, а rjmp способно прыгнуть на 2k слов.
0
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
21.02.2013, 15:26 7
Цитата Сообщение от kri_s_
в attiny2313 2k памяти = 1024 адреса. 8бит - это 256 адресов, так? тогда как из начала в конец?
Почему 8 бит? комманда rjmp в памяти МК занимает 2 байта - 16 бит. Вот из системы комманд -
16 битный код комманды:
1100 kkkk kkkk kkkk
где 1100 - код операции, указание ядру что делать,
а kkkk kkkk kkkk - адрес перехода, т.е. 12 бит, а это 4К слов (т.к. адресация пословная) или 8К байт
Как-то так!
0
kri_s_
21.02.2013, 15:32 8
Цитата Сообщение от wypuk
а kkkk kkkk kkkk - адрес перехода, т.е. 12 бит, а это 4К слов
Как-то так!
Точно! tromzystor, wypuk спасибо!
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2013, 15:32

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

ATMega16
Привет обитателям данного портала! Я имею микроконтроллер с ATMEGA 16. Также знаю язык C#, но увы я...

Atmega16
изучаю прерывания, помогите понять что значит в начале памяти программ и в области загрузчика? ...

Atmega16 + SD
Дорогие форумчане! Помогите, подскажите пожалуйста с данной задачей. Дино: 1. Плата...

Atmega16
помогите пожалуйста! есть микроконтроллер atmega16. через ассемблер на PORTC подаем комбинацию...

DS 1307z+ и atmega16.
Добрый день!!! Посоветуйте пожалуйста что я делаю не так. Связка ds1307, atmega16, lcd 16x2. Все...

Змейка atmega16
имеется контроллер атмега16 сам код уже кое-какой есть и работает, необходимо завязать управление...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.