Witam
Dlaczego tak zdefiniowane definicje:
#define SPI_PORT (B)
#define SPI_SCK (PB5)
#define SPI_SCK_OUT (DDR##SPI_PORT |= (1 << SPI_SCK))
wołane tak:
SPI_SCK_OUT;
nie rozwijają się do:
DDRB |= (1 << PB5);
?
Oraz dlaczego taki kod:
#define SPI_PORT (B)
#define SPI_SCK (PB5)
#define DDR(x) (SDDR(x))
#define SDDR(x) (DDR##x)
#define SPI_SCK_OUT (DDR(SPI_PORT) |= (1 << SPI_SCK))
wołane tak:
SPI_SCK_OUT;
nie rozwija się do tego samego co poprzednio?
Dodam tylko że w tym ostatnim przypadku wyskakuje błąd : "lvalue required as left operand of assignment"...
Pomożecie?