i2cで取り込まれたデータを配列に保存しましたが、単一の値にアクセスしたいと思います。私が保存し、それらを保存する関数から配列の値を印刷するとき値が正常です、その関数の外からそれらにアクセスしようとすると、配列内の値 "0"を意味する "倍"値を取得する毎回私は救われました。i2cのバイト配列の配列
int byteArray[100];
boolean hoRicevutoDati = false;
void setup() {
Serial.begin(9600); // start serial for output
Wire.begin(SLAVE_ADDRESS);
Wire.onReceive(receiveDataList);
}
void loop() {
delay(1000);
hoRicevutoDati = dalleNoteAlMotorino(hoRicevutoDati);
}
void receiveDataList(int numByte){
int i = 0;
while(Wire.available() > 0){
for(i=0; i < 100; i++){
byteArray[i] = Wire.read();
if (byteArray[i] == 255){
break;
}
else{
Serial.println(byteArray[i]);
i++;
}
};
}
boolean dalleNoteAlMotorino (boolean hoRicevutoDati) {
while (hoRicevutoDati == true) {
Serial.print("byte[0] ");
Serial.println(byteArray[0]);
Serial.print("byte[1] ");
Serial.println(byteArray[1]);
Serial.print("byte[2] ");
Serial.println(byteArray[2]);
Serial.print("byte[3] ");
Serial.println(byteArray[3]);
Serial.print("byte[4] ");
Serial.println(byteArray[4]);
return hoRicevutoDati = false;
}
}
I2C経由で私の代わりに、私は0を取得... dalleNoteAlMotorinoの実行時に、私は0、2、5、4を見て期待してい、{...、0,2,5,4}を送信しています0 0 2 0 5 0 4 ...すべての数字は0になります。周りを見回すと、バイト配列をポインタの配列に変えたかもしれないと思うが、私は配列をどこでもパラメータとして渡すわけではないので、どのように行ったのか分からない。私はまた、正確に値の前に0が何か、または値にアクセスする方法を理解していません。基本的に私は何が起こっているのか分かりません。
ArduinoはCではありません!しかし、あなたはC言語を知らないと言われました。 – Olaf