Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Ну вот примерно так. >>

Отправлено VasilyS 03 ноября 2008 г. 00:36
В ответ на: Примерчик плиззззззз отправлено <font color=gray>Kramniks</font> 03 ноября 2008 г. 00:23


#include <stdio.h>
// объявляю тип
typedef union
{
unsigned char pole8;
struct
{
unsigned char bit0 :1;
unsigned char bit1 :1;
unsigned char bit2 :1;
unsigned char bit3 :1;
unsigned char bit4 :1;
unsigned char bit5 :1;
unsigned char bit6 :1;
unsigned char bit7 :1;
}bits;
}bitfield_t;
bitfield_t my; // я создал объект где-то в памяти.
// А тебе надо попробовать так: register bitfield_t my @ 10
// Напишу макросы для удобства обращения к битам
#define BIT0 my.bits.bit0
#define BIT1 my.bits.bit1
#define BIT2 my.bits.bit2
#define BIT3 my.bits.bit3
#define BIT4 my.bits.bit4
#define BIT5 my.bits.bit5
#define BIT6 my.bits.bit6
#define BIT7 my.bits.bit7
int main( void )
{
my.pole8 = 0xaa; // работаю с char (сразу со всем битовом полем)
printf( "%02x\n",my.pole8); // aa

//.... а теперь обращение к каждому биту по имени:
BIT0 = 1;
printf( "%02x\n",my.pole8); // ab

BIT6 = 1;
printf( "%02x\n",my.pole8); // eb

}



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
к трём прибавьте 5:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru