Bonsoir,
J’ai un phénomène étrange que je n’arrive pas à comprendre.
byte donne[3]={18,42,7};
int ana=0;
int value;
byte BP[8]={0,0,0,0,0,0,0,0};
void setup() {
Serial.begin(9600);
delay(5000);
ana=donne[1]*16+donne[2];
value=donne[0];
for(int t=7;t>=0;t--){if(value>=pow(2,t)){BP[t+1]=1;value=value-pow(2,t);}else{BP[t+1]=0;}}
//ana=donne[1]*16+donne[2];
for(int t=1;t<8;t++){Serial.print(BP[t]);}
Serial.print(" ");
Serial.println(ana);
}
void loop() {
}
le résultat devrait affiché : 0100100 679 et j’ai 0100100 512 ???
La valeur ana change après (ou pendant) la ligne :
for(int t=7;t>=0;t--){if(value>=pow(2,t)){BP[t+1]=1;value=value-pow(2,t);}else{BP[t+1]=0;}}
Là j’avoue ne pas comprendre.
Si je fais : ana=donne[1]*16+donne[2]; après le for, la ça fonctionne…
Après d’autres essais la valeur ana ne prends que 4 valeurs différente au final : 0/256/512/768 si on modifie donne[1] et/ou donne[2]
Votre avis ?
Après de nouveaux essais : Ce phénomène apparait sur une UNO R4 Minima et UNO R4 Wifi mais pas sur une R3 standard…