私は特定のマイクロコントローラーで実行されるプログラムの変換に取り組んでおり、それをラズベリーパイで実行するように適合させています。使用しているセンサーから値を取得することに成功しましたが、問題が発生しました。これは、理解に苦労している数行のコードが原因だと思います。私は彼らが何であるかを読みましたが、まだ頭を悩ませています。以下のコードは、変数に格納される数を変更することになっているとX,Y,Z
思いますが、これは現在のプログラムでは発生していないと思います。また、プログラムをエラーなしでコンパイルするには、に変更byte
する必要がありました。INT
これは、私が変換した元のコードからの変更されていないコードです。とにかくこれが番号を変更しているのかどうか誰かに教えてもらえますか?
void getGyroValues () {
byte MSB, LSB;
MSB = readI2C(0x29);
LSB = readI2C(0x28);
x = ((MSB << 8) | LSB);
MSB = readI2C(0x2B);
LSB = readI2C(0x2A);
y = ((MSB << 8) | LSB);
MSB = readI2C(0x2D);
LSB = readI2C(0x2C);
z = ((MSB << 8) | LSB);
}
元のreadI2C関数は次のとおりです。
int readI2C (byte regAddr) {
Wire.beginTransmission(Addr);
Wire.write(regAddr); // Register address to read
Wire.endTransmission(); // Terminate request
Wire.requestFrom(Addr, 1); // Read a byte
while(!Wire.available()) { }; // Wait for receipt
return(Wire.read()); // Get result
}