Цитата(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