Цитата(aesok @ Nov 28 2006, 00:04)

Я бы сделал чтото вроде этого:
1. Объявил структуру.
struct __port {
volatile uint8_t *port;
unsigned char pin;
};
Такая структура занимает 3 байта.
Адрес порта <0x100, поэтому достаточно 2 байт.
Если массив будет большим, это серьезная экономия.
Вот еще вопросики появились:
почему
Код
PIN_tmp=_SFR_MEM8(PIN_[0][0]);
при компиляции выдает warning, а
Код
PIN_tmp=_SFR_MEM8(PIN_[0][0]+0);
не выдает ?
при компиляции этого кода получаем:
Код
+0000020A: 91800109 LDS R24,0x0109 Load direct from data space
+0000020C: 2FE8 MOV R30,R24 Copy register
+0000020D: 27FF CLR R31 Clear Register
+0000020E: 8180 LDD R24,Z+0 Load indirect with displacement
кто-нибудь может обьяснить зачем в lds используется r24
почему не так:
Код
LDS R30,0x0109
CLR R31
LDD R24,Z+0
???