[an error occurred while processing this directive]
|
Ведь поскольку вы ходите использовать косвенное обращение к порту (одна и та же функция с разными данными) то sbi, cbi вы никак не получите, даже если сами попробуете на асме написать.
struct pin_t {
uint8_t volatile *port;
uint8_t volatile *dir;
uint8_t bitmask;
}pin_t DevArray[] = {
{&PORTB, &DDRB, (1 << 1)},
{&PORTD, &DDRD, (1 << 3)},
{&PORTC, &DDRC, (1 << 2)},
}*DevArray[0].port |= bitmask;