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

 
 
> как создать массив из bit?, CodeVision
zuuuuk
сообщение Sep 30 2008, 06:44
Сообщение #1


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

Группа: Участник
Сообщений: 188
Регистрация: 26-04-07
Пользователь №: 27 334



Добрый день.
Я собираюсь программировать контроллер AT90S8515 в CodeVision.
Возник вопрос.
Можно ли создать массив с типом bit?
И обращаться к отдельным битам этого массива.

Я пробовал вот так
typedef struct {
char mybit:1;
} b;
b Bit[127];
…..

Bit[counter].mybit=PINA.0;

Но запись в память происходит, по типу char. Массив занимает много места.
Пожалуйста, плдскажите другие варианты.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mempfis_
сообщение Sep 30 2008, 07:05
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(zuuuuk @ Sep 30 2008, 10:44) *
Добрый день.
Я собираюсь программировать контроллер AT90S8515 в CodeVision.
Возник вопрос.
Можно ли создать массив с типом bit?
И обращаться к отдельным битам этого массива.

Я пробовал вот так
typedef struct {
char mybit:1;
} b;
b Bit[127];
…..

Bit[counter].mybit=PINA.0;

Но запись в память происходит, по типу char. Массив занимает много места.
Пожалуйста, плдскажите другие варианты.


Так сохраняйте в структуре состояние всего порта (ну т.е. состояние его пинов)
а потом в программе анализируйте необходимый бит

Код
typedef struct {
  char  pin_state;
} ps;
ps PinState[4]; //например будете хранить состояния пинов 4х портов

#define port_a 0
#define port_c 1
#define port_b 2
#define port_d 3

#define bit_0  1<<0
.........................
#define bit_7  1<<7

PinState[port_a].pin_state = PINA;

if(PinState[port_a].pin_state&bit_0) //проверка пина 0 порта А
{
}


Сообщение отредактировал mempfis_ - Sep 30 2008, 07:12
Go to the top of the page
 
+Quote Post



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

 


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


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