Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
02.03.2009, 17:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Условная трансляция AVRStudio #define .ifdef
Вопрос такой, нужно отключать кусок кода для уменьшения если что тоне используется...
в MPLAB пишу так:
#define twolinelcd;для жки 2 линии
#define forlinelcd;для жки 4 линии
;дальше в тексте
MOVLW 1
#ifdef twolinelcd ежели определили то компилируется этот кусок кода
MOVLW 2
#endif
#ifdef forlinelcd ежели определили то компилируется этот кусок кода
MOVLW 4
#endif
в AVRStudio пишу так:
#define twolinelcd 2;для жки 2 линии
#define forlinelcd 4;для жки 4 линии
;дальше в тексте
ldi temp,1
.ifdef twolinelcd ежели определили то компилируется этот кусок кода
ldi temp,2
.endif
.ifdef forlinelcd ежели определили то компилируется этот кусок кода
ldi temp,4
.endif
если не определять
#define twolinelcd 2;для жки 2 линии
#define forlinelcd 4;для жки 4 линии
то компилится нормально (без тех строк кода которые междуIFDEF и ENDIF)
если определять
#define twolinelcd 2;для жки 2 линии
#define forlinelcd 4;для жки 4 линии
то ругается на строчки
.ifdef twolinelcd
.ifdef forlinelcd
такими словами
(error: syntax error. unexspected INTEGER exspecting SYMBOL or REGDEF )
вместо
#define twolinelcd 2
#define forlinelcd 4
пробовал определять и так
#define twolinelcd
#define forlinelcd
что не так, или студия так не умеет?
|
|
|
|
02.03.2009, 17:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Re: Условная трансляция AVRStudio #define .ifdef
Сообщение от picavr
|
или студия так не умеет?
|
А в хелпе и в руководстве что то есть про это ?
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
02.03.2009, 17:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Условная трансляция AVRStudio #define .ifdef
Сообщение от avr123-nm-ru
|
А в хелпе и в руководстве что то есть про это ?
|
Прмеры синтаксиса взяты из Хелпа.
Может она не умеет их обрабатывать, так как мне нужно.. (а MPLAB так умеет)
пробовал, ругается
#define twolinelcds=2
.ifdef twolinelcds=2
пробовал, компилируется
#define twolinelcds=2
.if twolinelcds==2
но ругается если совсем не определять
;#define twolinelcds=2 закоментировать
;#define forlinelcds=4 закоментировать
.if twolinelcds==2
а нужно так..
если не опрределяем ничего - то компилится без доп кусков,
если определяем
#define twolinelcds=2
компилится с одним дополнением
если определяем
#define forlinelcds=4
компилится с другим дополнением
MPLAB умет.
|
|
|
|
02.03.2009, 17:58
|
|
Прохожий
Регистрация: 12.11.2008
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
a esli napisat' dopolnitel'no
.ifndef twolinelcd
#define twolinelcd=1
.endif
to eto budet otrabativat' po umolchaniu.
|
|
|
|
02.03.2009, 18:08
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от Onanimus
|
.ifndef twolinelcd
#define twolinelcd=1
.endif
|
В который раз убеждаюсь что MICROCHIP делает для пользователя проще и удобнее. А у ATMEL как обычно о пользователях думают в последнюю очередь .
|
|
|
|
02.03.2009, 20:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Сообщение от picavr
|
В который раз убеждаюсь что MICROCHIP делает для пользователя проще и удобнее. А у ATMEL как обычно о пользователях думают в последнюю очередь .
|
Пользователи разные бывают. Не все путают две версии ассемблера. И если уж пишут #define из AVRASM2, то не пишут .ifdef из AVRASM1, а пишут #ifdef.
Собственно все это есть в хелпе.
|
|
|
|
02.03.2009, 21:39
|
|
Вид на жительство
Регистрация: 15.03.2005
Сообщений: 351
Сказал спасибо: 17
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
Сообщение от picavr
|
В который раз убеждаюсь что MICROCHIP делает для пользователя проще и удобнее. А у ATMEL как обычно о пользователях думают в последнюю очередь .
|
взбесила эта фраза... читайте https://kazus.ru/articles/401.html
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:55.
|
|