Very simple library for the FXOS8700 combined magnetometer and accelerometer

Revision:
1:c0795224b157
Parent:
0:41abd50a2ad1
Child:
2:24e7cbc80327
--- a/FXOS8700.cpp	Sun Feb 25 11:16:06 2018 +0000
+++ b/FXOS8700.cpp	Tue Jan 29 12:56:36 2019 +0000
@@ -4,21 +4,23 @@
 {
    this->i2c_address=chip_address;
    char write_data[2];
+   bool err;
    write_data[0]=FXOS8700CQ_CTRL_REG1;
    write_data[1]=0x00;
-   i2c.write( i2c_address <<1,write_data,2);
+   err=err || i2c.write( i2c_address <<1,write_data,2);
    write_data[0]=FXOS8700CQ_M_CTRL_REG1;
    write_data[1]=0x1F;
-   i2c.write( i2c_address <<1,write_data,2);
+   err=err ||  i2c.write( i2c_address <<1,write_data,2);
    write_data[0]=FXOS8700CQ_M_CTRL_REG2;
    write_data[1]=0x20;
-   i2c.write( i2c_address <<1,write_data,2);
+   err=err ||  i2c.write( i2c_address <<1,write_data,2);
    write_data[0]=FXOS8700CQ_XYZ_DATA_CFG;
    write_data[1]=0x01;
-   i2c.write( i2c_address <<1,write_data,2);
+   err=err ||  i2c.write( i2c_address <<1,write_data,2);
    write_data[0]=FXOS8700CQ_CTRL_REG1;
    write_data[1]=0x0D;
-   i2c.write( i2c_address <<1,write_data,2);
+   err=err ||  i2c.write( i2c_address <<1,write_data,2);
+   this->i2c_error=err;
 }
 
 
@@ -30,8 +32,8 @@
 
 FXOS8700_data FXOS8700::read()
 {
-       char read_data[14];
-       char write_data[8];
+       char read_data[14]={0};
+       char write_data[8]={0};
        write_data[0]=FXOS8700CQ_STATUS;
        i2c.write( i2c_address <<1,write_data,1,1);
        i2c.read( i2c_address <<1,read_data,13);