Hallo,
ich hoffe, ich habe Deine Frage richtig verstanden. Hier ein Code-Beispiel unter Verwendung von Bitfields:
Du hast hier also eine Union aus 8 Bits (mybyte.byte) und den 2 LSBits (mybyte.lower2bits). Im Beispiel setze ich mybyte.byte zunächst auf 128, dann setze ich die niedrigsten 2 Bits auf 0x7 -- da aber nur Bits 0 und 1 verändert werden sollen, verschwindet das Bit 2. Im Endergebnis erhält man für mybyte.byte also 0x83=131 .Code:typedef struct { union{ uint8_t byte; unsigned lower2bits: 2; }; } w2b; w2b mybyte; mybyte.byte=128; //0x80 mybyte.lower2bits=7; //0x07, aber nur die 2 LSBits (0x03) werden verwendet!
Gruß
Fred







Zitieren
Lesezeichen