Цитата(aesok @ Nov 27 2006, 23:06)

Во первых посмотрите в avr-libc-user-manual: FAQ - 7.3.13 "How do I pass an IO port as a parameter to a function?"
Ну это я посмотрел прежде чем задавать вопрос
Там про то как записать значение в порт.
Цитата
Масив я объявил так:
volatile uint8_t *ports[2] = {&PINB, &PIND};
Доступ к порту:
uint8_t test;
test = *ports[0];
Да, так оно работает правильно!
Cпасибо.
-----------------
НО,
На самом деле я конечно не очень точно задал свой вопрос.
Есть такой массив:
Код
BYTE PIN_[3][2]={
{(BYTE)(&PINB), 1<<PINB5},
{(BYTE)(&PINF), 1<<PINF2},
{(BYTE)(&PING), 1<<PING1}
};
Доступ к нему присходит вот так:
Код
PIN_tmp=_SFR_IO8(PIN_[0][0]-0x20);
tmp=PIN_tmp & PIN_[0][1];
......
PIN_tmp=_SFR_IO8(PIN_[2]-0x20);
......
Как правильно написать доступ в таком варианте ?