Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 15.02.2020, 16:10   #1
alex_zas
Senior Member
 
Аватар для alex_zas
 
Регистрация: 17.03.2017
Адрес: Днепропетровск
Возраст: 54
Сообщений: 104
Вес репутации: 185/14
alex_zas has a spectacular aura aboutalex_zas has a spectacular aura about
По умолчанию Подскажите аналог #DEFINE в ASM16...

Здравствуйте.
Пробую писать ПО на ассемблере для PIC24FJ128GA204. Использую MPLAB ASM16 (xc16) v1.31.
Будьте добры - подскажите с помощью какой директивы можно присвоить имя набору символов. В ассемблере MPASM была директива #DEFINE, например можно было объявить #DEFINE LED LATC,2 и тогда можно вместо bsf LATC,2 писать bsf LED.
ASM16 не понимает директиву #DEFINE. Как сделать вышеописанное в ASM16?
Заранее благодарен, Алексей.
alex_zas на форуме   Ответить с цитированием
Старый 16.02.2020, 10:05   #2
varostov
Senior Member
 
Аватар для varostov
 
Регистрация: 14.11.2007
Адрес: Ростов-на-Дону
Возраст: 54
Сообщений: 160
Вес репутации: 535/52
varostov is a glorious beacon of lightvarostov is a glorious beacon of lightvarostov is a glorious beacon of lightvarostov is a glorious beacon of lightvarostov is a glorious beacon of lightvarostov is a glorious beacon of light
По умолчанию Re: Подскажите аналог #DEFINE в ASM16...

Изучайте мануал:
Нажмите на изображение для увеличения
Название: 2020-02-16_10-03-10.png
Просмотров: 12
Размер:	28.0 Кб
ID:	11544

Препроцессора как такового в ассемблере нет, поэтому полной свободы (#DEFINE LED LATC,2) не получится. Но присвоить значения можно.
Код:
	        .equ __24FJ256GA106, 		1			;xxx uncomment and change if using PIC24FJ device

Последний раз редактировалось varostov; 16.02.2020 в 10:14.
varostov вне форума   Ответить с цитированием
Старый 16.02.2020, 11:06   #3
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 2,861
Вес репутации: 3951/114
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Подскажите аналог #DEFINE в ASM16...

Цитата:
Сообщение от varostov Посмотреть сообщение
Препроцессора как такового в ассемблере нет
А кто тогда занимается командами .equ, .ifdef, etc...?
Я всегда полагал, что препроцессор.
А командами типа .org - линкер.
Однако действительно, команды ассемблера .equ и .set ограничивают состав выражения. В нем не должно быть запятых. Поэтому фокус из MPASM не пройдет.
Я обычно делаю так:
Код:
.equ    LED_A,      2
.equ    OUT_C,     10
........

     bset    LATA, #LED_A
........

     bclr    LATC, #OUT_C
Марк вне форума   Ответить с цитированием
Старый 16.02.2020, 11:17   #4
varostov
Senior Member
 
Аватар для varostov
 
Регистрация: 14.11.2007
Адрес: Ростов-на-Дону
Возраст: 54
Сообщений: 160
Вес репутации: 535/52
varostov is a glorious beacon of lightvarostov is a glorious beacon of lightvarostov is a glorious beacon of lightvarostov is a glorious beacon of lightvarostov is a glorious beacon of lightvarostov is a glorious beacon of light
По умолчанию Re: Подскажите аналог #DEFINE в ASM16...

Это директивы ассемблера:
Нажмите на изображение для увеличения
Название: 2020-02-16_11-16-21.png
Просмотров: 14
Размер:	54.3 Кб
ID:	11545
varostov вне форума   Ответить с цитированием
Старый 16.02.2020, 11:25   #5
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 2,861
Вес репутации: 3951/114
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Подскажите аналог #DEFINE в ASM16...

Не важно как их определяет мануал, важно какое место они занимают в процессе трансляции в бинарный код. В этом смысле функциональность ассемблера по отношению к этим командам неотличима от функций препроцессора в Си. Просто в MPASM синтаксис таких же команд ассемблера идентичен синтаксису препроцессора в Си. И нет ограничения на запятые. Оттого #DEFINE LED LATC,2 отлично получается.
Марк вне форума   Ответить с цитированием
Ответ

Метки
asm16, define, pic24


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PIC18F25K80, где взять BootLoader? hfmscan Вопросы начинающих 49 26.11.2017 17:28
Нужна помощь с кодом с ALADIN Продукция MICROCHIP 5 08.06.2017 09:12
Нужна помощь с TCP/IP skdon Cетевые протоколы и технологии 158 19.09.2014 03:58
PIC + MRF24J40 Nik Продукция MICROCHIP 59 05.08.2012 16:51
Звук через ШИМ KeMik Продукция MICROCHIP 79 02.10.2011 12:36


Часовой пояс GMT +3, время: 13:08.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot