test

Committer:
fitzpatrick
Date:
Sun Mar 28 20:20:09 2021 +0000
Revision:
5:38ace6067c7d
Parent:
4:df2167370234
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AswinSivakumar 4:df2167370234 1 /*
fitzpatrick 5:38ace6067c7d 2 * FXOS8700.cpp
AswinSivakumar 4:df2167370234 3 */
AswinSivakumar 1:66ff36d0d1b1 4
AswinSivakumar 1:66ff36d0d1b1 5 #include "FXOS8700.h"
AswinSivakumar 0:a4ffc3c3e770 6 #include "mbed.h"
AswinSivakumar 0:a4ffc3c3e770 7
AswinSivakumar 0:a4ffc3c3e770 8 FXOS8700::FXOS8700(PinName sda, PinName scl) : accelmagi2c(sda,scl)
AswinSivakumar 0:a4ffc3c3e770 9 {
AswinSivakumar 0:a4ffc3c3e770 10
AswinSivakumar 0:a4ffc3c3e770 11 }
AswinSivakumar 0:a4ffc3c3e770 12
AswinSivakumar 0:a4ffc3c3e770 13 void FXOS8700::accel_config(void)
AswinSivakumar 0:a4ffc3c3e770 14 {
AswinSivakumar 0:a4ffc3c3e770 15 char d[2];
AswinSivakumar 0:a4ffc3c3e770 16 d[0] = FXOS8700_CTRL_REG1; //Puts device in Standby mode
AswinSivakumar 0:a4ffc3c3e770 17 d[1] = 0x00;
AswinSivakumar 0:a4ffc3c3e770 18 accelmagi2c.write(FXOS8700_I2C_ADDRESS, d,2);
AswinSivakumar 0:a4ffc3c3e770 19
AswinSivakumar 0:a4ffc3c3e770 20
AswinSivakumar 0:a4ffc3c3e770 21 d[0] = FXOS8700_CTRL_REG1; //Puts device in Active mode
AswinSivakumar 0:a4ffc3c3e770 22 d[1] = 0x01;
AswinSivakumar 0:a4ffc3c3e770 23 accelmagi2c.write(FXOS8700_I2C_ADDRESS, d, 2);
AswinSivakumar 0:a4ffc3c3e770 24
AswinSivakumar 0:a4ffc3c3e770 25 }
AswinSivakumar 0:a4ffc3c3e770 26
AswinSivakumar 0:a4ffc3c3e770 27 void FXOS8700::mag_config(void)
AswinSivakumar 0:a4ffc3c3e770 28 {
AswinSivakumar 0:a4ffc3c3e770 29 char d[2];
AswinSivakumar 0:a4ffc3c3e770 30 d[0] = FXOS8700_CTRL_REG1; //Puts device in Standby mode
AswinSivakumar 0:a4ffc3c3e770 31 d[1] = 0x00;
AswinSivakumar 0:a4ffc3c3e770 32 accelmagi2c.write(FXOS8700_I2C_ADDRESS, d,2);
AswinSivakumar 0:a4ffc3c3e770 33
AswinSivakumar 0:a4ffc3c3e770 34
AswinSivakumar 0:a4ffc3c3e770 35 d[0] = FXOS8700_M_CTRL_REG1; //Puts device in hybrid mode (both accel and mag are active)
AswinSivakumar 0:a4ffc3c3e770 36 d[1] = 0x03;
AswinSivakumar 0:a4ffc3c3e770 37 accelmagi2c.write(FXOS8700_I2C_ADDRESS, d, 2);
AswinSivakumar 0:a4ffc3c3e770 38
AswinSivakumar 0:a4ffc3c3e770 39
AswinSivakumar 0:a4ffc3c3e770 40 d[0] = FXOS8700_CTRL_REG1; //Puts device in Active mode
AswinSivakumar 0:a4ffc3c3e770 41 d[1] = 0x01;
AswinSivakumar 0:a4ffc3c3e770 42 accelmagi2c.write(FXOS8700_I2C_ADDRESS, d,2);
AswinSivakumar 0:a4ffc3c3e770 43
AswinSivakumar 0:a4ffc3c3e770 44 }
AswinSivakumar 0:a4ffc3c3e770 45
AswinSivakumar 0:a4ffc3c3e770 46 void FXOS8700::acquire_accel_data_g(float * a_data)
AswinSivakumar 0:a4ffc3c3e770 47 {
AswinSivakumar 0:a4ffc3c3e770 48
AswinSivakumar 0:a4ffc3c3e770 49 char data_bytes[7];
AswinSivakumar 0:a4ffc3c3e770 50 char d[1];
AswinSivakumar 0:a4ffc3c3e770 51 d[0]=FXOS8700_STATUS;
AswinSivakumar 0:a4ffc3c3e770 52 accelmagi2c.write(FXOS8700_I2C_ADDRESS,d,1,true); // Read the 6 data bytes - LSB and MSB for X, Y and Z Axes.
AswinSivakumar 0:a4ffc3c3e770 53 accelmagi2c.read(FXOS8700_I2C_ADDRESS,data_bytes,7);
AswinSivakumar 0:a4ffc3c3e770 54
AswinSivakumar 0:a4ffc3c3e770 55 a_data[0] = ((float)((int16_t)(((data_bytes[1]*256) + (data_bytes[2])))>> 2) * 0.000244);
AswinSivakumar 0:a4ffc3c3e770 56 a_data[1] = ((float)((int16_t)(((data_bytes[3]*256) + (data_bytes[4])))>> 2) * 0.000244);
AswinSivakumar 0:a4ffc3c3e770 57 a_data[2] = ((float)((int16_t)(((data_bytes[5]*256) + (data_bytes[6])))>> 2) * 0.000244);
AswinSivakumar 0:a4ffc3c3e770 58
AswinSivakumar 0:a4ffc3c3e770 59 }
AswinSivakumar 0:a4ffc3c3e770 60
AswinSivakumar 0:a4ffc3c3e770 61 void FXOS8700::acquire_mag_data_uT(float * m_data)
AswinSivakumar 0:a4ffc3c3e770 62 {
AswinSivakumar 0:a4ffc3c3e770 63
AswinSivakumar 0:a4ffc3c3e770 64 char data_bytes[7];
AswinSivakumar 0:a4ffc3c3e770 65 char d[1];
AswinSivakumar 0:a4ffc3c3e770 66 d[0]=FXOS8700_MDR_STATUS;
AswinSivakumar 0:a4ffc3c3e770 67 accelmagi2c.write(FXOS8700_I2C_ADDRESS,d,1,true); // Read the 6 data bytes - LSB and MSB for X, Y and Z Axes.
AswinSivakumar 0:a4ffc3c3e770 68 accelmagi2c.read(FXOS8700_I2C_ADDRESS,data_bytes,7);
AswinSivakumar 0:a4ffc3c3e770 69
AswinSivakumar 0:a4ffc3c3e770 70 m_data[0] = (float)((int16_t)((data_bytes[1]*256) + (data_bytes[2]))) * 0.1;
AswinSivakumar 0:a4ffc3c3e770 71 m_data[1] = (float)((int16_t)((data_bytes[3]*256) + (data_bytes[4]))) * 0.1;
AswinSivakumar 0:a4ffc3c3e770 72 m_data[2] = (float)((int16_t)((data_bytes[5]*256) + (data_bytes[6]))) * 0.1;
AswinSivakumar 0:a4ffc3c3e770 73
AswinSivakumar 0:a4ffc3c3e770 74 }
AswinSivakumar 0:a4ffc3c3e770 75
AswinSivakumar 0:a4ffc3c3e770 76