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;
