Код
#define DB4 0 //указать номер вывода
#define PORT_DB4 B //указать порт вывода
#define SET_PORT_1(port, bit) (PORT##port |= _BV(bit))
#define SET_PORT_0(port, bit) (PORT##port &= ~_BV(bit))
#define SET_DDR_1(port, bit) (DDR##port |= _BV(bit))
#define SET_DDR_0(port, bit) (DDR##port &= ~_BV(bit))
#define DB4_1 SET_PORT_1(PORT_DB4,DB4)
#define DB4_0 SET_PORT_0(PORT_DB4,DB4)
#define PORT_DB4 B //указать порт вывода
#define SET_PORT_1(port, bit) (PORT##port |= _BV(bit))
#define SET_PORT_0(port, bit) (PORT##port &= ~_BV(bit))
#define SET_DDR_1(port, bit) (DDR##port |= _BV(bit))
#define SET_DDR_0(port, bit) (DDR##port &= ~_BV(bit))
#define DB4_1 SET_PORT_1(PORT_DB4,DB4)
#define DB4_0 SET_PORT_0(PORT_DB4,DB4)
Не получается так. Склеивается как PORTPORT_DB4. Как сделать что бы PORT_DB4 заменялся на В при вызове макроса?
Хочется в начале файла указать вывод и порт и пользоваться DB4_1 вместо SET_PORT_1(В,DB4).