Страница 1 из 1

Прерывания в макросе

Добавлено: Чт апр 02, 2015 09:44:00
sashavir
Дорогие форумчане! Подскажите пожалуйста, возможно ли как-то использовать метку на прерывание в макросе, т.е. конструкцию вида:

.macro test

metka:

.endmacro

.cseg

RJMP metka

test

Сейчас, при такой конструкции у меня компилятор AVR stydio 4.19 ругается (83): error: Undefined symbol: metka, если увожу метку в тело cseg, то соответственно все нормально, очень хочется сделать единым блоком подпрограмму с использованием прерывания... И еще вопрос, очень неудобно в отладчике работать с макросами, отладчик не переходит к выполнению макроса визуально, т.е. что-то делает, что указанно в макросе, но пошаговый процесс работы макроса не показывает, что конечно логично, если последний находится допустим в отдельном файле... Может есть какие-нибудь фишки, чтобы отследить работу отладчика в макросе?

Re: Прерывания в макросе

Добавлено: Чт апр 02, 2015 09:58:03
ARV
a студийном отладчике никаких таких фишек нет.
что вы затеяли с метками и макросами, я не до конца понял, из вашего объяснения не понятно, нафига это нужно, и чем не устраивает традиционный подход с обработчиками прерываний.

Re: Прерывания в макросе

Добавлено: Чт апр 02, 2015 10:04:53
sashavir
Да просто пока щупаю возможности языка, решил попробовать сделать подпрограмму задержки по прерыванию таймера и оформить её в виде макроса (за одно и работу макроса изучить), но наткнулся сразу на две особенности работы с макросами, вот и решил спросить, может делаю что-то не так...

Re: Прерывания в макросе

Добавлено: Чт апр 02, 2015 10:07:57
ARV
совмещение макросов и меток - плохая затея. макрос - это просто автозамена текста. что будет, если ваш макрос содержит метку и вы дважды или более используете этот макрос в программе? будет две или более одинаковых метки - компилятор не пропустит, это ошибка. для создания уникальных меток в макросах Атмел предлагает использовать какие-то костыли с цифрами и символом @ - я уже и не помню, как именно - уродское убогое решение...

не пользуйтесь костылями, если у вас не сломаны ноги :)))

Re: Прерывания в макросе

Добавлено: Чт апр 02, 2015 10:13:43
pyzhman
Вы путаете макрос и функцию. Делайте по-человечьи, либо то, либо другое. Самим проще будет потом разбираться в собственной прграмме.

Re: Прерывания в макросе

Добавлено: Чт апр 02, 2015 10:18:21
sashavir
ARV Спасибо, что наставили на путь истинный :) Буду дальше колупаться...
pyzhman Да это я так, просто смотрю, как лучше делать, тем более, что я еще не знаю, как делать по-человечески :)) , все приходит с опытом!
PS Ох и нелегок Ваш хлеб - программисты!