Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Размещение битов разных портов в одной переменной
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Metallist64
Добрый день, уважаемые специалисты!
Помогите организовать переменную, в которой каждый бит отвечал за нужный бит порта.
Хотелось бы получить конструкцию типа:

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;
};
};

Т.е. хочется использовать битовые поля.
Но проблема в том, что указанные битовые поля уже определены и компилятор ругается.
Если кто сталкивался, помогите пожалуйста.
sigmaN
Оххохх, а я даже и не знаю как их так слинковать то, чтоб с разных портов по биту выкусить и собрать в юнион..... Тут подумать, да поэкспериментировать надо...
dxp
Для упаковывания битов (пинов) разных портов в один объект существует такая реализация. Более подробно (статья) здесь. Работает эффективно, т.е. без накладняков. Но это совсем не структура с битовыми полями. И чтобы понять, как все это внутри работает, надо хорошенько вникать в поднятую там тему.
Metallist64
Большое спасибо, статью нашел, пойду разбираться.
SasaVitebsk
Вот для таких вещей очень важно себе задать один вопрос. А это надо?
С какой целью это всё затевается?

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

Зачем же их ещё раз определять, если они уже есть?
Пользуйтесь!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.