реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> помогите начинающему
max0212
сообщение Nov 17 2006, 07:12
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 17-11-06
Пользователь №: 22 429



#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


почему компилятор ругается?
Go to the top of the page
 
+Quote Post
andrvisht
сообщение Nov 17 2006, 07:20
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



Цитата(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
Go to the top of the page
 
+Quote Post
Artur Nikitin
сообщение Nov 28 2006, 17:50
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 28-11-06
Из: Набережные Челны
Пользователь №: 22 856



Цитата(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


--------------------
начинающий программист
Go to the top of the page
 
+Quote Post
Семён
сообщение Nov 29 2006, 10:13
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Я предпочитаю работать с портами как в примере ниже.
Код
///////////////////// ПОРТЫ УПРАВЛЕНИЯ ЗВУКОВЫМИ СИГНАЛАМИ //////////////////////
#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)


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01347 секунд с 7
ELECTRONIX ©2004-2016