Zitat Zitat von Thorben W Beitrag anzeigen
Wenn ich unten dann noch zwei Sachen anfüge welche Bitwerte sind das dann
Code:
union {
 	uint16_t byte;
	struct {
		uint8_t batLow:1;
		uint8_t bumperLeft:1;
		uint8_t bumperRight:1;
		uint8_t RC5reception:1;
		uint8_t RC5transmitReady:1;
		uint8_t obstacleLeft:1;
		uint8_t obstacleRight:1;
		uint8_t driveSystemChange:1;
		uint8_t hightbumperLeft:1;
		uint8_t hightbumperRight:1;
	};
} interrupt_status;
Ich dachte man macht ein solches Konstrukt, um die Bitmaske nicht zu benötigen:

Code:
interrupt_status.bumperRight = 0;
.
.
if(interrupt_status.bumperLeft == 0) {
.
.
Obwohl ich das so schreiben würde:
Code:
union {
 	uint16_t register;
	struct {
		int batLow:1;
		int bumperLeft:1;
		int bumperRight:1;
		int RC5reception:1;
		int RC5transmitReady:1;
		int obstacleLeft:1;
		int obstacleRight:1;
		int driveSystemChange:1;
		int hightbumperLeft:1;
		int hightbumperRight:1;
	};
} interrupt_status;

if  (interrupt_status.register) {      // wenn irgend ein Bit ungleich 0
.
MfG Klebwax