Revision dd57d4fa Adafruit_BNO055.cpp

View differences:

Adafruit_BNO055.cpp
71 71
  setMode(OPERATION_MODE_CONFIG);
72 72

  
73 73
  /* Reset */
74
  write8(BNO055_SYS_TRIGGER_ADDR, 0x20); //reset the sensor
75
  while (read8(BNO055_CHIP_ID_ADDR) != BNO055_ID) //wait for boot
74
  write8(BNO055_SYS_TRIGGER_ADDR, 0x20);
75
  while (read8(BNO055_CHIP_ID_ADDR) != BNO055_ID)
76
  {
76 77
    delay(10);
77
  
78
  }
78 79
  delay(50);
79 80
 
80 81
  /* Set to normal power mode */
......
84 85
  write8(BNO055_PAGE_ID_ADDR, 0);
85 86
  
86 87
  /* Set the output units */
87
  uint8_t unitsel = (0 << 7) | /* Orientation = Android */
88
                    (0 << 4) | /* Temperature = Celsius */
89
                    (0 << 2) | /* Euler = Degrees */
90
                    (1 << 1) | /* Gyro = Rads */
91
                    (0 << 0);  /* Accelerometer = m/s^2 */
88
  /*
89
  uint8_t unitsel = (0 << 7) | // Orientation = Android
90
                    (0 << 4) | // Temperature = Celsius
91
                    (0 << 2) | // Euler = Degrees
92
                    (1 << 1) | // Gyro = Rads
93
                    (0 << 0);  // Accelerometer = m/s^2
92 94
  write8(BNO055_UNIT_SEL_ADDR, unitsel);
95
  */
93 96

  
94 97
  write8(BNO055_SYS_TRIGGER_ADDR, 0x0);
95 98
  delay(10);
......
256 259
  
257 260
  /* Read vector data (6 bytes) */
258 261
  readLen((adafruit_bno055_reg_t)vector_type, buffer, 6);
259
  x = (((uint16_t)buffer[1]) << 8) | ((uint16_t)buffer[0]);
260
  y = (((uint16_t)buffer[3]) << 8) | ((uint16_t)buffer[2]);
261
  z = (((uint16_t)buffer[5]) << 8) | ((uint16_t)buffer[4]);
262
  
263
  x = ((int16_t)buffer[0]) | (((int16_t)buffer[1]) << 8);
264
  y = ((int16_t)buffer[2]) | (((int16_t)buffer[3]) << 8);
265
  z = ((int16_t)buffer[4]) | (((int16_t)buffer[5]) << 8);
262 266

  
263 267
  /* Convert the value to an appropriate range (section 3.6.4) */
264 268
  /* and assign the value to the Vector type */

Also available in: Unified diff