|
если не ошибаюсь, то там было что-то типа
extern unsigned char DataPort;
DataPort |= 0x12;
public DataPort
DataPort equ P1IN
Если развивать идею дальше, то получается такое:
красиво:
#define PORT_IN 0
#define PORT_OUT 1
#define PORT_DIR 2
#define PORT1(SFR) (*(unsigned char *)P1IN+SFR)
#define PORT2(SFR) (*(unsigned char *)P2IN+SFR)
#define PORT3(SFR) (*(unsigned char *)P3IN+SFR)#define DataPort PORT1
unsigned char TipaTest (unsigned char Data) {
DataPort(PORT_OUT) = Data;
DataPort(PORT_DIR) = 0xFF;
return DataPort(PORT_IN);
}и некрасиво, но без перекомпиляции:
#define PORT_IN(PORT) (*(unsigned char *)PORT+0)
#define PORT_OUT(PORT) (*(unsigned char *)PORT+1)
#define PORT_DIR(PORT) (*(unsigned char *)PORT+2)extern unsigned char DataPort;
unsigned char TipaTest (unsigned char Data) {
PORT_OUT(DataPort) = Data;
PORT_DIR(DataPort) = 0xFF;
return PORT_IN(DataPort);
}
E-mail: info@telesys.ru