Hummingbird Flight Software
Flight software for the Hummingbird FCU quadcopter flight controller. Designed to run on the Teensy 4.1. Developed with VSCode+PlatformIO.
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
FXOS8700AccelMag Class Reference

NXP Semiconductor FXOS8700 accelerometer/magnetometer sensor class. More...

#include <fxos8700_accelmag.h>

Public Member Functions

 FXOS8700AccelMag (TwoWire *wireInput=&SENSOR_I2C)
 Constructor for the FXOS8700 Accelerometer/Magnetometer class. More...
 
 ~FXOS8700AccelMag ()
 
bool Initialize (AccelRanges_t accRange=ACCEL_RNG_4G)
 Initialize accelerometer, set accel. More...
 
bool ReadSensor ()
 Read acceleration data from the FXOS8700 sensor. More...
 
float GetAx ()
 Return x-acceleromter measurement in [G's]. More...
 
float GetAy ()
 Return y-acceleromter measurement in [G's]. More...
 
float GetAz ()
 Return z-acceleromter measurement in [G's]. More...
 

Public Attributes

uint32_t prevMeasMicros
 Previous measurement micros() More...
 
AccelRanges_t accelRange
 Measurement range. More...
 

Private Member Functions

uint8_t I2Cread8 (uint8_t regOfInterest)
 Read FXOS8700 register value over I2C. More...
 
void I2Cwrite8 (uint8_t regOfInterest, uint8_t valToWrite)
 Write to FXOS8700 register over I2C. More...
 

Private Attributes

float _ax
 X-acceleration [G's]. More...
 
float _ay
 Y-acceleration [G's]. More...
 
float _az
 Z-acceleration [G's]. More...
 
TwoWire * _SensorWire
 I2C bus that the sensor is on. More...
 

Detailed Description

NXP Semiconductor FXOS8700 accelerometer/magnetometer sensor class.

Constructor & Destructor Documentation

◆ FXOS8700AccelMag()

FXOS8700AccelMag::FXOS8700AccelMag ( TwoWire *  wireInput = &SENSOR_I2C)

Constructor for the FXOS8700 Accelerometer/Magnetometer class.

Parameters
wireInputI2C bus/wire interface that the device is connected to

◆ ~FXOS8700AccelMag()

FXOS8700AccelMag::~FXOS8700AccelMag ( )
inline

Member Function Documentation

◆ GetAx()

float FXOS8700AccelMag::GetAx ( )

Return x-acceleromter measurement in [G's].

◆ GetAy()

float FXOS8700AccelMag::GetAy ( )

Return y-acceleromter measurement in [G's].

◆ GetAz()

float FXOS8700AccelMag::GetAz ( )

Return z-acceleromter measurement in [G's].

◆ I2Cread8()

uint8_t FXOS8700AccelMag::I2Cread8 ( uint8_t  regOfInterest)
private

Read FXOS8700 register value over I2C.

Parameters
regOfInterestRegister address on device.
Returns
Value/data in register.

◆ I2Cwrite8()

void FXOS8700AccelMag::I2Cwrite8 ( uint8_t  regOfInterest,
uint8_t  valToWrite 
)
private

Write to FXOS8700 register over I2C.

Parameters
regOfInterestRegister address on device.
valToWriteValue to write to register.

◆ Initialize()

bool FXOS8700AccelMag::Initialize ( AccelRanges_t  accRange = ACCEL_RNG_4G)

Initialize accelerometer, set accel.

measurement range, configure magnetometer.

Parameters
accRangeDesired accelerometer measurement range.
See also
AccelRanges_t

◆ ReadSensor()

bool FXOS8700AccelMag::ReadSensor ( )

Read acceleration data from the FXOS8700 sensor.

Returns
True if successful

Read and shift values from registers into integers. Accelerometer data is 14-bit and left-aligned. Shift two bits right. See p.28 for datasheet's code example.

Member Data Documentation

◆ _ax

float FXOS8700AccelMag::_ax
private

X-acceleration [G's].

◆ _ay

float FXOS8700AccelMag::_ay
private

Y-acceleration [G's].

◆ _az

float FXOS8700AccelMag::_az
private

Z-acceleration [G's].

◆ _SensorWire

TwoWire* FXOS8700AccelMag::_SensorWire
private

I2C bus that the sensor is on.

◆ accelRange

AccelRanges_t FXOS8700AccelMag::accelRange

Measurement range.

◆ prevMeasMicros

uint32_t FXOS8700AccelMag::prevMeasMicros

Previous measurement micros()


The documentation for this class was generated from the following files: