Was ist das für ein Operator?



  • Hallo!

    Was sind das für Operatoren?

    &=
    |=

    Ich habe nur gefunden, das dies Zuweisungsoperatoren sind.

    Grüße

    René



  • Abkürzungen:

    i &= 5; // ist equivalent zu
    i = i & 5;
    //bzw.
    i |= 5; // ist equivalent zu
    i = i | 5;
    

    & und | sind Bitoperatoren (bitwise AND, bitwise OR)

    Danaben gibt es noch ^ (XOR) und ~(NOT)



  • Danke schon mal,
    was genau passiert dann hier?
    Das Programm wartet auf ein Ackknowledge beim I²C.

    char WAIT_ACK()
    {
      char ack; 		// Wait for ACK or NACK
      P1 &= SCL_L;Delay(1);
      P1 |= SCL_H;Delay(1);
      if(P1 & SDA_H)	     	// If Signal is HIGH,then NACK, else if LOW,then ACK
        ack = NACK;
      else
        ack = ACK;
      P1 &= SCL_L;Delay(1);
      return ack;
    }
    

    Danke

    René



  • nehme an SCL_H, SCL_L sind bitmasken

    char WAIT_ACK()
    {
      char ack;             // Wait for ACK or NACK
      P1 &= SCL_L;Delay(1); // alles ausser SCL_L -Bit löschen , warten
      P1 |= SCL_H;Delay(1); // SCL_H -Bit setzen , warten
      if(P1 & SDA_H)        // wenn SDA_H bit gsetzt ack = NACK
        ack = NACK;
      else                  // sonst  ack = ACK
        ack = ACK;
      P1 &= SCL_L;Delay(1); // alles ausser SCL_L -Bit löschen , warten
      return ack;           // ack zurückgeben
    }
    


  • danke!


Anmelden zum Antworten