@Thorben:
Das sind sog. "Bitmasken". Sie dienen dazu, bestimmte Bits aus einem Byte auszuwerten.
Wenn man z.B. einen Wert ermittelt wie: Wert = Var & MASK_ACS;
... und Var den Interrupt-Status enthält, dann ist Wert = 0, wenn beide ACS Status bits 0 sind.
Die Bitmasken dienen also dazu, die Bits des Interrupt-Status auszuwerten.
In der RP6M256_I2CMasterLib.h ist das Byte interrupt_status so definiert:
Da kannst du die Bitpositionen wiederfinden:Code:union { uint8_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; }; } interrupt_status;
Z.B. ist batLow das Bit 0 im interrupt_status und genauso auch in der MASK_BATLOW Bitmaske (=0b00000001).







Zitieren

Lesezeichen