Very simple library for the FXOS8700 combined magnetometer and accelerometer
Diff: FXOS8700.cpp
- 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);