vyčtení bitu z byte

Můžeš to zkusit taky takhle :

typedef struct { unsigned char B0:1; unsigned char B1:1; unsigned char B2:1; unsigned char B3:1; unsigned char B4:1; unsigned char B5:1; unsigned char B6:1; unsigned char B7:1; } BAJT;

Pak si nadefinuješ :

BAJT Bity;

Pak k jednotlivým bitům můžeš přistupovat :

Bity.B0=1; Bity.B1=0; atd.

Nejsem si jistý pořadím jednotlivých bitů v “typedef” (B0->B7 nebo B7->B0).
Zápis celého bytu pak ale musíš provést přes memset :

  memset((void*)&Bity, <zapisovaná hodnota>, sizeof(Bity));

V programu se pak o maskování nemusíš starat, máš jednodušší zápis, o maskování se stará překladač.

Mám to použito v programu napsaným v AVR Studiu 4.19 + WinAVR.