Zitat von
Thorben W
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
Lesezeichen