Ultra-compact high-performance eCompass module: ultra-low power 3D accelerometer and 3D magnetometer.

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   HelloWorld_ST_Sensors MOTENV_Mbed mbed-os-mqtt-client LSM303AGR_JS ... more

Revision:
1:86d530a7f949
Parent:
0:ec6e59cc6f40
Child:
2:e37be5550633
--- a/LSM303AGRAccSensor.h	Mon Sep 04 16:08:24 2017 +0000
+++ b/LSM303AGRAccSensor.h	Wed Sep 27 16:49:51 2017 +0200
@@ -47,6 +47,7 @@
 #include "DevI2C.h"
 #include "LSM303AGR_acc_driver.h"
 #include "MotionSensor.h"
+#include <assert.h>
 
 /* Defines -------------------------------------------------------------------*/
 #define LSM303AGR_ACC_SENSITIVITY_FOR_FS_2G_NORMAL_MODE               3.900f  /**< Sensitivity value for 2 g full scale and normal mode [mg/LSB] */
@@ -71,8 +72,7 @@
 class LSM303AGRAccSensor : public MotionSensor
 {
   public:
-    LSM303AGRAccSensor(DevI2C &i2c);
-    LSM303AGRAccSensor(DevI2C &i2c, uint8_t address);
+    LSM303AGRAccSensor(DevI2C *i2c, uint8_t address=LSM303AGR_ACC_I2C_ADDRESS, PinName int1_pin=NC, PinName int2_pin=NC);
     virtual int init(void *init);
     virtual int read_id(uint8_t *id);
     virtual int get_x_axes(int32_t *pData);
@@ -96,7 +96,7 @@
      */
     uint8_t io_read(uint8_t* pBuffer, uint8_t RegisterAddr, uint16_t NumByteToRead)
     {
-        return (uint8_t) _dev_i2c.i2c_read(pBuffer, _address, RegisterAddr, NumByteToRead);
+        return (uint8_t) _dev_i2c->i2c_read(pBuffer, _address, RegisterAddr, NumByteToRead);
     }
     
     /**
@@ -108,7 +108,7 @@
      */
     uint8_t io_write(uint8_t* pBuffer, uint8_t RegisterAddr, uint16_t NumByteToWrite)
     {
-        return (uint8_t) _dev_i2c.i2c_write(pBuffer, _address, RegisterAddr, NumByteToWrite);
+        return (uint8_t) _dev_i2c->i2c_write(pBuffer, _address, RegisterAddr, NumByteToWrite);
     }
 
   private:
@@ -119,10 +119,13 @@
     int get_x_sensitivity_hr_mode(float *sensitivity );
 
     /* Helper classes. */
-    DevI2C &_dev_i2c;
+    DevI2C *_dev_i2c;
     
     /* Configuration */
     uint8_t _address;
+    DigitalOut  _cs_pin;        
+    InterruptIn _int1_pin; 
+    InterruptIn _int2_pin;  
     
     uint8_t _is_enabled;
     float _last_odr;