MagnetometerRaw HMC5883L::readRawAxis() { uint8_t* buffer = read(DATA_REGISTER_BEGIN, 6); MagnetometerRaw raw = MagnetometerRaw(); raw.XAxis = (buffer[0] << 8) | buffer[1]; raw.ZAxis = (buffer[2] << 8) | buffer[3]; raw.YAxis = (buffer[4] << 8) | buffer[5]; return raw; }
MagnetometerRaw HMC5883L::ReadRawAxis() { uint8_t* buffer = Read(DataRegisterBegin, 6); MagnetometerRaw raw = MagnetometerRaw(); raw.XAxis = (buffer[0] << 8) | buffer[1]; raw.ZAxis = (buffer[2] << 8) | buffer[3]; raw.YAxis = (buffer[4] << 8) | buffer[5]; return raw; }
MagnetometerRaw Compass::readRawAxis() { uint8_t buffer[DATA_REGISTER_COUNT]; uint16_t reg = DATA_REGISTER_BEGIN; int ind = 0; for(; ind < DATA_REGISTER_COUNT; ++reg, ++ind) { buffer[ind] = wire_.i2c_smbus_read_byte_data(reg); } MagnetometerRaw raw = MagnetometerRaw(); short int tmp = (buffer[0] << 8) | buffer[1]; raw.XAxis = tmp; tmp = (buffer[2] << 8) | buffer[3]; raw.ZAxis = tmp; tmp = (buffer[4] << 8) | buffer[5]; raw.YAxis = tmp; return raw; }