Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
10 years, 5 months ago.
LSM9DS0 library - import from arduino
Hello there,
I'm trying to import LSM9DS0 library from arduino to FRDM K64F mbed platform but I'm facing issues with that. I tried to import the following code:
uint8_t I2CreadByte(uint8_t address, uint8_t subAddress) { uint8_t data; // `data` will store the register data Wire.beginTransmission(address); // Initialize the Tx buffer Wire.write(subAddress); // Put slave register address in Tx buffer Wire.endTransmission(false); // Send the Tx buffer, but send a restart to keep connection alive Wire.requestFrom(address, (uint8_t) 1); // Read one byte from slave register address data = Wire.read(); // Fill Rx buffer with result return data; // Return data read from slave register }
I translated into mbed as follows:
uint8_t I2CreadByte(uint8_t address, uint8_t subAddress) { char output = 0xff; int wr = i2c.write(address << 1, (const char*)&subAddress, 1); // arduino addressing is 7-bit int rd = i2c.read(address << 1, &output, 1); return output; }
The write is ok and return success (wr = 0) while the read is not working properly (rd=1)!
What is wrong with my translated code?
PS: the arduino library can be found here https://github.com/sparkfun/LSM9DS0_Breakout/tree/master/Libraries/Arduino/SFE_LSM9DS0
Assigned to
10 years, 5 months ago.This means that the question has been accepted and is being worked on.
how stupid I'm, I forgot to set the repeated flag !
the following code is working:
I found your question today.
I'm interested in this project. Could you publish your project on the web?
posted by Hiroshi SAITO 25 Sep 2014