Revision 67f3cff5

View differences:

Adafruit_BNO055.cpp
108 108
void Adafruit_BNO055::setMode(adafruit_bno055_opmode_t mode)
109 109
{
110 110
  _mode = mode;
111
  //Serial.print("Mode: 0x"); Serial.println(mode, HEX);
112 111
  write8(BNO055_OPR_MODE_ADDR, _mode);
113 112
  delay(30);
114 113
}
......
153 152

  
154 153
  write8(BNO055_SYS_TRIGGER_ADDR, read8(BNO055_SYS_TRIGGER_ADDR) | 0x1);
155 154
  delay(1000);
156
  /* Read the system status register */
157
  if (system_status != 0)
158
    *system_status    = read8(BNO055_SYS_STAT_ADDR);
159
  if (self_test_result != 0)
160
    *self_test_result = read8(BNO055_SELFTEST_RESULT_ADDR);
161
  if (system_error != 0)
162
    *system_error     = read8(BNO055_SYS_ERR_ADDR);
163

  
164
  setMode(backupmode);
165
  delay(20);
166
}
167

  
168
/**************************************************************************/
169
/*!
170
    @brief  Displays system status info via Serial.print
171
*/
172
/**************************************************************************/
173
void Adafruit_BNO055::displaySystemStatus(void)
174
{
175
  uint8_t system_status, self_test_result, system_error;
176
  getSystemStatus(&system_status, &self_test_result, &system_error);
177 155
  
178 156
  /* System Status (see section 4.3.58)
179 157
     ---------------------------------
......
185 163
     5 = Sensor fusio algorithm running
186 164
     6 = System running without fusion algorithms */
187 165
  
188
  Serial.print("System Status:          0x");
189
  Serial.println(system_status, HEX);
190

  
166
  if (system_status != 0)
167
    *system_status    = read8(BNO055_SYS_STAT_ADDR);
168
  
191 169
  /* Self Test Results (see section )
192 170
     --------------------------------
193 171
     1 = test passed, 0 = test failed
194
    
172
  
195 173
     Bit 0 = Accelerometer self test
196 174
     Bit 1 = Magnetometer self test
197 175
     Bit 2 = Gyroscope self test
198 176
     Bit 3 = MCU self test
199
  
177

  
200 178
     0x0F = all good! */
201 179
  
202
  Serial.print("Self Test Results:      0x");
203
  Serial.println(self_test_result, HEX);
180
  if (self_test_result != 0)
181
    *self_test_result = read8(BNO055_SELFTEST_RESULT_ADDR);
204 182

  
205 183
  /* System Error (see section 4.3.59)
206 184
     ---------------------------------
......
216 194
     9 = Fusion algorithm configuration error
217 195
     A = Sensor configuration error */
218 196
  
219
  Serial.print("System Error:           0x");
220
  Serial.println(system_error, HEX);
197
  if (system_error != 0)
198
    *system_error     = read8(BNO055_SYS_ERR_ADDR);
199

  
200
  setMode(backupmode);
201
  delay(20);
221 202
}
222 203

  
223 204
/**************************************************************************/
......
231 212

  
232 213
  memset(info, 0, sizeof(adafruit_bno055_rev_info_t));
233 214

  
215
  /* Check the accelerometer revision */
234 216
  info->accel_rev = read8(BNO055_ACCEL_REV_ID_ADDR);
217

  
218
  /* Check the magnetometer revision */
235 219
  info->mag_rev   = read8(BNO055_MAG_REV_ID_ADDR);
220

  
221
  /* Check the gyroscope revision */
236 222
  info->gyro_rev  = read8(BNO055_GYRO_REV_ID_ADDR);
223

  
224
  /* Check the SW revision */
237 225
  info->bl_rev    = read8(BNO055_BL_REV_ID_ADDR);
238 226
  
239 227
  a = read8(BNO055_SW_REV_ID_LSB_ADDR);
......
243 231

  
244 232
/**************************************************************************/
245 233
/*!
246
    @brief  Displays the chip revision numbers via Serial.print
247
*/
248
/**************************************************************************/
249
void Adafruit_BNO055::displayRevInfo(void)
250
{
251
  adafruit_bno055_rev_info_t info;
252
  getRevInfo(&info);
253

  
254
  /* Check the accelerometer revision */
255
  Serial.print("Accelerometer Revision: 0x");
256
  Serial.println(info.accel_rev, HEX);
257
  
258
  /* Check the magnetometer revision */
259
  Serial.print("Magnetometer Revision:  0x");
260
  Serial.println(info.mag_rev, HEX);
261
  
262
  /* Check the gyroscope revision */
263
  Serial.print("Gyroscope Revision:     0x");
264
  Serial.println(info.gyro_rev, HEX);
265
  
266
  /* Check the SW revision */
267
  Serial.print("SW Revision:            0x");
268
  Serial.println(info.sw_rev, HEX);
269
  
270
  /* Check the bootloader revision */
271
  Serial.print("Bootloader Revision:    0x");
272
  Serial.println(info.bl_rev, HEX);
273
}
274

  
275
/**************************************************************************/
276
/*!
277 234
    @brief  Gets teh temperature in degrees celsius
278 235
*/
279 236
/**************************************************************************/
Adafruit_BNO055.h
239 239
    void  displayRevInfo      ( void );
240 240
    void  setExtCrystalUse    ( boolean usextal );
241 241
    void  getSystemStatus     ( uint8_t *system_status, 
242
				uint8_t *self_test_result, 
243
				uint8_t *system_error);
242
                                uint8_t *self_test_result, 
243
                                uint8_t *system_error);
244 244
    void  displaySystemStatus ( void );
245 245
    
246 246
    imu::Vector<3>  getVector ( adafruit_vector_type_t vector_type );
examples/rawdata/rawdata.ino
42 42
  
43 43
  delay(1000);
44 44
    
45
  /* Display chip revision details (optional) */
46
  bno.displayRevInfo();
47
  Serial.println("");
48
  
49 45
  /* Display the current temperature */
50 46
  int8_t temp = bno.getTemp();
51 47
  Serial.print("Current Temperature: ");
examples/sensorapi/sensorapi.ino
76 76
    
77 77
  /* Display some basic information on this sensor */
78 78
  displaySensorDetails();
79
  
80
  /* Display system info (optional) */
81
  // bno.displaySystemStatus();
82
  // Serial.println("");
83
  
84
  /* Display chip revision details (optional) */
85
  // bno.displayRevInfo();
86
  // Serial.println("");
87
  
79

  
88 80
  bno.setExtCrystalUse(true);
89 81
}
90 82

  

Also available in: Unified diff