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

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

Массив нужен чтоб по индексу обращаться? Можно эмулировать это так: >>

Отправлено VasilyS 31 мая 2008 г. 18:18
В ответ на: вам шашечки или ехать? или просто спортивный интерес? отправлено eXeC001er 31 мая 2008 г. 17:27


#define TRUE 1
#define FALSE !TRUE
typedef union
{
unsigned char Container;
struct
{
unsigned char Bit_0 : 1;
unsigned char Bit_1 : 1;
unsigned char Bit_2 : 1;
unsigned char Bit_3 : 1;
unsigned char Bit_4 : 1;
unsigned char Bit_5 : 1;
unsigned char Bit_6 : 1;
unsigned char Bit_7 : 1;
}sub_str;
}type_Bit_Array;
type_Bit_Array Bit_Array;
#define ALL_BITS_ARRAY Bit_Array.Container
#define BIT(b,m) switch(b) \
{ \
case 0: \
Bit_Array.sub_str.Bit_0 = m; \
break; \
case 1: \
Bit_Array.sub_str.Bit_1 = m; \
break; \
case 2: \
Bit_Array.sub_str.Bit_2 = m; \
break; \
case 3: \
Bit_Array.sub_str.Bit_3 = m; \
break; \
case 4: \
Bit_Array.sub_str.Bit_4 = m; \
break; \
case 5: \
Bit_Array.sub_str.Bit_5 = m; \
break; \
case 6: \
Bit_Array.sub_str.Bit_6 = m; \
break; \
case 7: \
default: \
Bit_Array.sub_str.Bit_7 = m; \
break; \
}//switch
int main()
{
unsigned char qwe;

ALL_BITS_ARRAY = 0; // Обнулю все
printf("%d\n",ALL_BITS_ARRAY);


qwe = 0; // Обращаюсь к биту 0 по индексу
BIT(qwe,TRUE); // Ставлю его в 1
printf("%d\n",ALL_BITS_ARRAY);

qwe = 1; // Обращаюсь к биту 1 по индексу
BIT(qwe,TRUE); // Ставлю его в 1
printf("%d\n",ALL_BITS_ARRAY);


BIT(7,TRUE); // Прямоe обращение к биту 7
printf("%d\n",ALL_BITS_ARRAY); // Ставлю его в 1


qwe = 7; // Обращаюсь к биту 0 по индексу
BIT(qwe,FALSE); // Ставлю его в 0
printf("%d\n",ALL_BITS_ARRAY);

}


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

Ответы


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

Сообщение:

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

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

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

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