Forked version of the FXOS8700CQ library which maintains its own memory
Dependents: fxos8700cq_example
Fork of FXOS8700CQ by
Diff: FXOS8700CQ.cpp
- Revision:
- 5:2bd683278d23
- Parent:
- 2:4c2f8a3549a9
--- a/FXOS8700CQ.cpp Wed May 28 17:08:33 2014 +0000 +++ b/FXOS8700CQ.cpp Thu Mar 02 17:12:06 2017 +0000 @@ -6,6 +6,9 @@ // Construct class and its contents FXOS8700CQ::FXOS8700CQ(PinName sda, PinName scl, int addr) : dev_i2c(sda, scl), dev_addr(addr) { + accel_data = new SRAWDATA(); + magn_data = new SRAWDATA(); + // Initialization of the FXOS8700CQ dev_i2c.frequency(I2C_400K); // Use maximum I2C frequency uint8_t data[6] = {0, 0, 0, 0, 0, 0}; // target device write address, single byte to write at address @@ -76,7 +79,10 @@ } // Destruct class -FXOS8700CQ::~FXOS8700CQ(void) {} +FXOS8700CQ::~FXOS8700CQ(void) { + if (accel_data) delete accel_data; + if (magn_data) delete magn_data; +} void FXOS8700CQ::enable(void) @@ -115,7 +121,7 @@ return databyte; } -uint8_t FXOS8700CQ::get_data(SRAWDATA *accel_data, SRAWDATA *magn_data) +uint8_t FXOS8700CQ::get_data() { if(!enabled) { return 1; @@ -147,6 +153,14 @@ return 0; } +int16_t FXOS8700CQ::getAccelX() { return accel_data->x; } +int16_t FXOS8700CQ::getAccelY() { return accel_data->y; } +int16_t FXOS8700CQ::getAccelZ() { return accel_data->z; } + +int16_t FXOS8700CQ::getMagnetX() { return magn_data->x; } +int16_t FXOS8700CQ::getMagnetY() { return magn_data->y; } +int16_t FXOS8700CQ::getMagnetZ() { return magn_data->z; } + uint8_t FXOS8700CQ::get_accel_scale(void) { uint8_t data = 0x00;