Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемам с rcall
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
DesNer
Только вчера поставил AVR Studio, разбираюсь потихоньку. И вот первая проблема. Микросхема tiny26.
Вызываю подпрограмму с помощью rcall, возврат по ret. Только возвращается почему-то в начало кода, а не в место вызова rcall. Я так понимаю адрес не сохраняется в стэке. Почему?
andrvisht
Цитата(DesNer @ Apr 26 2006, 09:11) *
Только вчера поставил AVR Studio, разбираюсь потихоньку. И вот первая проблема. Микросхема tiny26.
Вызываю подпрограмму с помощью rcall, возврат по ret. Только возвращается почему-то в начало кода, а не в место вызова rcall. Я так понимаю адрес не сохраняется в стэке. Почему?

Помниться подобные проблемы возникали в старых AVRStudio3.5 (в новых не экспериментировал) когда неправильно был прописан таблицы вызова обработчиков прерываний.
Попробуйте воткнуть туда везде
Код
reti
XsanyaX
А стек проинициализирован до команды rcall. У меня такое было когда я забывал записать в SPH:SPL последний адрес ОЗУ
Дмитрий Анатольевич
Проинициализируй указатель стека!
DesNer
Цитата(Дмитрий Анатольевич @ Apr 26 2006, 12:31) *
Проинициализируй указатель стека!

Какая команда это делает?
Alfa
ldi r16,high(RAMEND)
out SPH,r16
ldi r16,low(RAMEND)
out SPL,r16
DesNer
Цитата(Alfa @ Apr 26 2006, 13:33) *
ldi r16,high(RAMEND)
out SPH,r16
ldi r16,low(RAMEND)
out SPL,r16

Сделал так
Код
ldi         r16,RAMEND;инициализирую стэк
out         SP,r16

Вроде заработало
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.