Incompréhension analyse des bits d'un byte
Bonjour à tous
Je tente en vain de stocker l'état des bits d'un octet dans un tableau de booleen:
Code:
1 2
| byte memRel = 0b11011011; //mémoire d'état des relais
bool etatRel[8]; //etat des relais actifs |
Puis je tente de stocker l'état des mes bits dans le tableau de booleen:
Code:
1 2 3 4 5 6 7 8
| //*****************lecture etat**************************
void lectureEtat(){
if(memRel != 0b11111111){ //0b11111111 tous les relais carte seraient OFF
for(int i=0;i<8;i++){
etatRel[i]= (memRel & (1<<i) == 0)? true: false ;
}
}
} |
mais lorsque je lis mon tableau pour y affecter 'F' ou 'O':
Code:
1 2 3 4 5 6 7 8
| if (PCF8574Ok) {
char tempo [10]= {""};
for (int j = 0; j < 8; j++) {
tempo[j] = (etatRel[j]) ? 'O' : 'F';
}
tempo[8]= 'Z'; tempo[9]='\0';
Serial1.print(tempo);
} |
j'obtiens FFFFFFFF au lieu de FFOFFOFF
Où est la bétise?