Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: помогите начинающему
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
max0212
#define key(0) PORTB.0=1
#define key(1) PORTB.1=1
#define key(2) PORTB.2=1
#define key(3) PORTB.3=1
#define key(4) PORTB.4=1
#define key(5) PORTB.5=1
#define key(6) PORTB.6=1
#define key(7) PORTB.7=1
#define key(8) PORTE.0=1
#define key(9) PORTE.1=1
#define key(10) PORTE.2=1
#define key(11) PORTE.3=1
#define key(12) PORTE.4=1
#define key(13) PORTE.5=1
#define key(14) PORTE.6=1
#define key(15) PORTE.7=1


почему компилятор ругается?
andrvisht
Цитата(max0212 @ Nov 17 2006, 11:12) *
#define key(0) PORTB.0=1
#define key(1) PORTB.1=1
#define key(2) PORTB.2=1
#define key(3) PORTB.3=1
#define key(4) PORTB.4=1
#define key(5) PORTB.5=1
#define key(6) PORTB.6=1
#define key(7) PORTB.7=1
#define key(8) PORTE.0=1
#define key(9) PORTE.1=1
#define key(10) PORTE.2=1
#define key(11) PORTE.3=1
#define key(12) PORTE.4=1
#define key(13) PORTE.5=1
#define key(14) PORTE.6=1
#define key(15) PORTE.7=1


почему компилятор ругается?


он считает что вы хотите сделать макрос а в скобочках не имя переменной.
видимо в вашем случае имелось ввиду следущее
#define key_15 PORTE.7=1
а вот когда описывается макрос то это делается так:
#define key(а) (2*а) - макрос умножения на 2
Artur Nikitin
Цитата(max0212 @ Nov 17 2006, 07:12) *
#define key(0) PORTB.0=1
......
почему компилятор ругается?


Если вам это для управления ногами, то проще использовать процедурку
#define SETB(a,n) a|=(0x01<<n)
#define CLRB(a,n) a&=(~(0x01<<n))

вызов будет примерно таким:
SETB(PORTB, 0); //установить нулевой бит порта В
CLRB(PORTB, 5); //сбросить 5 бит порта В

И тада вам ваще не надо буит писать столько строчек, тут всего 2 smile.gif
Семён
Я предпочитаю работать с портами как в примере ниже.
Код
///////////////////// ПОРТЫ УПРАВЛЕНИЯ ЗВУКОВЫМИ СИГНАЛАМИ //////////////////////
#define PORT_SOUND PORTB
#define SOUND_LN 1
#define SOUND_BASE 2                        

// Команды управления звуком
#define SOUND_BASE_ON PORT_SOUND |= Bit(SOUND_BASE)
#define SOUND_BASE_OFF PORT_SOUND &= ~Bit(SOUND_BASE)
#define SOUND_LN_ON PORT_SOUND |= Bit(SOUND_LN)
#define SOUND_LN_OFF PORT_SOUND &= ~Bit(SOUND_LN)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.