C a flagy

Vidíš a přesně tenhle způsob já používám pro práci s jednotlivými porty u AVR.

typedef struct
	{
    unsigned B0: 1;
    unsigned B1: 1;
    unsigned B2: 1;
    unsigned B3: 1;
    unsigned B4: 1;
    unsigned B5: 1;
    unsigned B6: 1;
    unsigned B7: 1;
    } bits;
#define BITS(p) (*(volatile bits*)&p)
#define LED1        BITS(PORTA).B0
#define DIR_LED1    BITS(DDRA).B0

DIR_LED1=1; // Vystup

LED1=1; // Sviti
.
.
.
LED1=0; // Nesviti