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

 
 
> Указатель на порт, Не работает как надо
Decan
сообщение Jul 27 2008, 21:07
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 29
Регистрация: 26-10-05
Из: Киев
Пользователь №: 10 128



Доброго времени суток!

Есть массив структур:
Код
typedef struct
{
uchar volatile *port;
uchar bit;
} IND_HARDWARE;

__flash IND_HARDWARE ind_hw[] =
{ //{порт,бит}
  {&PORTC,0},
  {&PORTC,1},
  {&PORTC,2},
  {&PORTC,3},
  {&PORTB,4},
  {&PORTB,5}
};

На описанных лапах портов висят разные индикационные девайсы(светодиоды,пищалки).
Трабла в следующем. При попытке обратиться к порту таким образом:
Код
&(ind_hw[0].port)&=~(1<<(ind_hw[0].bit));

Компайлер ругается:
Error[Pe137]: expression must be a modifiable lvalue
Проблема именно с портом, поскольку матерится и в том случае, если вместо правой части стоит число.
Пробовал обратиться таким способом(уже методом тыка):
Код
ind_hw[0].port|=0x80;

Получил в ответ:
Error[Pe031]: expression must have integral type
Как правильно обращаться с указателем на порт?
Камень - атмега168.


--------------------
Объективная реальность - есть бред, порождённый недостатком алкоголя в организме...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Jul 27 2008, 23:52
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Decan @ Jul 27 2008, 23:07) *
...бред, порождённый недостатком алкоголя в организме...

Ну тогда попробуйте похмелиться и разобрать написанное Вами smile.gif.
Начните с рассмотрения того, что представляют собой описания POTRx в хидерах.
Формальная причина ругани:
*(ind_hw[0].port)&=~(1<<(ind_hw[0].bit));
Ну потом самое главное - зачем вообще чесать правой ногой левое ухо?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 5th August 2025 - 23:22
Рейтинг@Mail.ru


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