Désolé redemander ... Mais il me semble lutter avec binaire ... je suis tombé sur la ligne suivanteIF condition avec l'argument binaire
MGC_SSPBUF_REG = (GESTIC_I2C_ADDR << 1) | 1; // write Address to MGC3130
Outre le fait que ne savent plus, pourquoi on déplacerait l'adresse vers la gauche pour la sauver, je ne peux pas me concentrer sur cette opération OU. Avoir une adresse ORed avec "1" donnera toujours 1111 1111, n'est-ce pas?
Je suis la programmation d'un PIC18F14K50 Microchip en C. Tout en vérifiant un code écrit par une autre société que je suis tombé sur la ligne suivante:
if(MGC_SSPCON2_REG & 0x1F) { // MSSP not idle
...
}
Maintenant, MGC_SSPCON2_REG est mis en œuvre comme suit
#define MGC_SSPCON2_REG SSPCON2
Où SSPCON est le registre de contrôle MSSP 8 bits (en MODE I2C).
Ce que je ne comprends pas, c'est comment cette condition if fonctionne. Est-ce vrai lorsque tous les bits des nombres binaires 8 bits sont mis à 1? Pour autant que je sache, l'argument est l'opération ET bits sur le registre 8bit et le nombre binaire 0001 1111 (0x1F).
J'espère avoir fourni assez de code pour comprendre la question. Je ne voulais pas entrer dans les détails sur le fonctionnement du registre.
Nous vous remercions d'avance pour votre aide :)
Merci beaucoup pour la clarification :) – user3554329