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

 
 
> Размещение битов разных портов в одной переменной, Помогите организовать переменную, в которой биты отвечают за порты
Metallist64
сообщение Dec 1 2010, 17:29
Сообщение #1


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

Группа: Участник
Сообщений: 103
Регистрация: 29-01-08
Пользователь №: 34 558



Добрый день, уважаемые специалисты!
Помогите организовать переменную, в которой каждый бит отвечал за нужный бит порта.
Хотелось бы получить конструкцию типа:

CODE
union{
unsigned char ports_state;
struct{
PORTA_Bit0:1;
PORTA_Bit1:1;
PORTB_Bit0:1;
PORTB_Bit1:1;
PORTC_Bit0:1;
PORTC_Bit1:1;
PORTD_Bit0:1;
PORTD_Bit1:1;
};
};

Т.е. хочется использовать битовые поля.
Но проблема в том, что указанные битовые поля уже определены и компилятор ругается.
Если кто сталкивался, помогите пожалуйста.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
sigmaN
сообщение Dec 1 2010, 20:07
Сообщение #2


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Оххохх, а я даже и не знаю как их так слинковать то, чтоб с разных портов по биту выкусить и собрать в юнион..... Тут подумать, да поэкспериментировать надо...


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 2 2010, 05:13
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Для упаковывания битов (пинов) разных портов в один объект существует такая реализация. Более подробно (статья) здесь. Работает эффективно, т.е. без накладняков. Но это совсем не структура с битовыми полями. И чтобы понять, как все это внутри работает, надо хорошенько вникать в поднятую там тему.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Metallist64
сообщение Dec 2 2010, 06:26
Сообщение #4


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

Группа: Участник
Сообщений: 103
Регистрация: 29-01-08
Пользователь №: 34 558



Большое спасибо, статью нашел, пойду разбираться.

Сообщение отредактировал Metallist64 - Dec 2 2010, 06:27
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 2 2010, 06:40
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Вот для таких вещей очень важно себе задать один вопрос. А это надо?
С какой целью это всё затевается?

На текущий момент уже полностью пропала необходимость экономии ресурсов, во всяком случае, таким образом. Так зачем огород городить? В ущерб наглядности и всему прочему.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Dec 2 2010, 07:06
Сообщение #6


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Metallist64 @ Dec 1 2010, 20:29) *
Но проблема в том, что указанные битовые поля уже определены и компилятор ругается.
Если кто сталкивался, помогите пожалуйста.

Зачем же их ещё раз определять, если они уже есть?
Пользуйтесь!


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

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

 


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


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