Modified FXAS21000 library. changed _i2c to a pointer allowing you to pass an existing I2C object to the library instead of initializing a new one each time. This is mainly to make this library more practical to use alongside other I2C sensors.

Fork of FXAS21000 by Jim Carver

Revision:
4:c411fbb2cc2f
Parent:
2:cd21ef326977
--- a/FXAS21000.cpp	Mon Jun 02 17:36:38 2014 +0000
+++ b/FXAS21000.cpp	Mon Aug 17 18:25:11 2015 +0000
@@ -1,7 +1,11 @@
  #include "FXAS21000.h"
  
-FXAS21000::FXAS21000(PinName sda, PinName scl) : _i2c(sda, scl) {
- 
+FXAS21000::FXAS21000(PinName sda, PinName scl) {
+    _i2c = new I2C(sda, scl);
+    begin();
+}
+
+FXAS21000::FXAS21000(I2C *i2c): _i2c(i2c){
     begin();
 }
               
@@ -10,8 +14,8 @@
     char cmd[1];
     cmd[0] = reg;
 char i2c_addr = FXAS21000_SLAVE_ADDR;
-_i2c.write( i2c_addr, cmd, 1, true);
-_i2c.read ( i2c_addr, d, len);
+_i2c->write( i2c_addr, cmd, 1, true);
+_i2c->read ( i2c_addr, d, len);
 }
 
 void FXAS21000::begin(void)
@@ -23,17 +27,17 @@
     // [0]: active=0
     data[0] = FXAS21000_CTRL_REG1;
     data[1] = 0x08;
-    _i2c.write( FXAS21000_SLAVE_ADDR, data, 2);
+    _i2c->write( FXAS21000_SLAVE_ADDR, data, 2);
     
     // write 0001 1011 to CRTL_REG0 register
     data[0] = FXAS21000_CTRL_REG0;
     data[1] = 0x1B;
-    _i2c.write( FXAS21000_SLAVE_ADDR, data, 2);
+    _i2c->write( FXAS21000_SLAVE_ADDR, data, 2);
 
     // write 0000 1001 to gyro control register 1
     data[0] = FXAS21000_CTRL_REG1;
     data[1] = 0x0A;
-    _i2c.write( FXAS21000_SLAVE_ADDR, data, 2);
+    _i2c->write( FXAS21000_SLAVE_ADDR, data, 2);
 }
 
 char FXAS21000::getWhoAmI(void)