[an error occurred while processing this directive]
АВР-щики, объясните пожалуйста, почему если значение PC регистра засунуть в "Z", а потом выполнить ijmp ,то в PC загружается удвоенное значение...?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Cаша
15 марта 2006 г. 14:30
Составить ответ
|||
Конференция
|||
Архив
Ответы
Единственный приходящий наум ответ -С-СПАЙ дизассемблируя показывает метки в байтах, но тогда и значение РС тоже он конвертирует, ибо вводя адрес метки, на неё и попадаешь...
—
Cаша
(15.03.2006 15:11
217.65.241.196
,
пустое
)
Ты уж сразу сказал бы - симулирую в C-SPY, а то все сразу подумали про АСтудио или про работу реального МК. Все равно читай -->
—
=AVR=
(15.03.2006 15:59
80.92.96.19
,
пустое
,
ссылка
)
Код...
—
Cаша
(15.03.2006 14:39
217.65.241.196
, 251 байт)
Код почти правильный, читай внутри
—
=AVR=
(15.03.2006 15:53
80.92.96.19
, 1205 байт,
ссылка
)
Вот я и смотрю, если судить по листингу, то все нормально.
—
_Bill
(15.03.2006 15:58
193.233.83.90
,
пустое
)
Исходник я видел, а листинг где?
—
=AVR=
(15.03.2006 16:00
80.92.96.19
,
пустое
)
Ну, так я в AStudio странслировал и посмотрел.
—
_Bill
(15.03.2006 16:03
193.233.83.90
,
пустое
)
А был бы ЕГО листинг - большинство предположений и догадок отпало бы, вот я о чем
—
=AVR=
(15.03.2006 16:06
80.92.96.19
,
пустое
)
Само собой.
—
_Bill
(15.03.2006 16:10
193.233.83.90
,
пустое
)
Скорее всего в два раза ближе, хотя здесь все зависит от конкретного кода программы.
—
_Bill
(15.03.2006 14:56
193.233.83.90
, 267 байт)
-Без всяких меток, вписал в Z "0х4" после команды -"0х8" - а все мануалы говорят что значение Z просто копируется в счётчик...
—
Cаша
(15.03.2006 15:04
217.65.241.196
,
пустое
)
четвертое слово программ находится с восьмого байта в памяти программ
—
радиолюбитель без лицензии
(15.03.2006 15:10
213.154.220.39
,
пустое
)
ну так адрес метки - в байтах, а IJMP на слова прыгает, так что просто делим low (FG/2) и т п
—
-=DASM=-
(15.03.2006 14:51
212.58.192.14
,
пустое
)
Скорее, наоборот. Нужно УМНОЖИТЬ. Или нет?
—
_Bill
(15.03.2006 15:00
193.233.83.90
,
пустое
)
похоже зависит от ассемблера. В AVRStudio вообще ни умножать ни делить не надо (умножать на 2 для LPM). Видимо вопрос в том, в чем считается адрес метки - словах или байтах
—
-=DASM=-
(15.03.2006 15:09
212.58.192.14
,
пустое
)
Точно, умножать надо для lpm. А для данного кода посмотрел листинг. Вроде все нормально.
—
_Bill
(15.03.2006 15:34
193.233.83.90
,
пустое
)
Я так и делаю, меня интересует, почему вручную заполнив Z, выполняя команду попадаю "в сад..."
—
Cаша
(15.03.2006 14:57
217.65.241.196
,
пустое
)
А ты уверен, что ты вручную заносишь ПРАВИЛЬНОЕ значение в Z?
—
=AVR=
(15.03.2006 16:07
80.92.96.19
,
пустое
)
А подробнее можно описать Ваши действия. Код в студию!
—
_Bill
(15.03.2006 14:34
193.233.83.90
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
NoIX ключ
:
Запомнить
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
E-mail:
info@telesys.ru