FXLS89xx_Arduino 1.0.0
This library enables the developer to evaluate NXP FXLS89xx with Arduino.
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
FXLS89xx_Arduino Class Reference

Class to evaluate FXLS89xx. More...

#include <FXLS89xx_Arduino.h>

Inheritance diagram for FXLS89xx_Arduino:

Public Member Functions

void read_XYZ (float *pOutBuffer)
 Read XYZ accelerometer value with unit milligravity.
 
void run (bool sdcd=false)
 Start conversion based on the settings of sensor_range, wake_pm, sleep_pm, wake_odr, sleep_odr.
 
void sdcd (ref_updm ref, XYZ xyz, float upper_threshold, float lower_threshold, uint8_t debounce=0)
 Set SDCD function.
 
void enable_sleep (uint16_t asleep=0)
 Sleep mode enable.
 
void EXT_TRIG_init (bool pinconfig=true)
 Initialize the pin configurations and register for EXT_TRIG mode.
 
void EXT_TRIG_Trigger ()
 Trigger the pin to start one-time conversion. Make sure once EXT_TRIG init is done first.
 
uint8_t init (bool pinconfig=true)
 Initialize the device with reset.
 
 FXLS89xx_Arduino (uint8_t i2c_address=FXLS896x_DEVICE_ADDRESS_SA0_0)
 
 FXLS89xx_Arduino (TwoWire &wire, uint8_t i2c_address=FXLS896x_DEVICE_ADDRESS_SA0_0)
 
virtual ~FXLS89xx_Arduino ()
 
virtual float read (void)
 
bool ping (void)
 
int reg_w (uint8_t reg_adr, uint8_t *data, uint16_t size)
 
int reg_w (uint8_t reg_adr, uint8_t data)
 
int reg_r (uint8_t reg_adr, uint8_t *data, uint16_t size)
 
uint8_t reg_r (uint8_t reg_adr)
 
void write_r8 (uint8_t reg, uint8_t val)
 
void write_r16 (uint8_t reg, uint16_t val)
 
uint8_t read_r8 (uint8_t reg)
 
uint16_t read_r16 (uint8_t reg)
 
void bit_op8 (uint8_t reg, uint8_t mask, uint8_t value)
 
void bit_op16 (uint8_t reg, uint16_t mask, uint16_t value)
 

Public Attributes

SensorRange sensor_range = FXLS89xx_RANGE_2G
 Sensor range selected through 2g,4g,8g,16g.
 
PowerMode wake_pm = FXLS89xx_LPM
 Power Mode in WAKE state selected from LPM, HPM, FPM.
 
PowerMode sleep_pm = FXLS89xx_LPM
 Power Mode in SLEEP state selected from LPM, HPM, FPM.
 
odr_freq wake_odr = FXLS89xx_ODR_100HZ
 ODR in WAKE state.
 
odr_freq sleep_odr = FXLS89xx_ODR_12_5HZ
 ODR in SLEEP state.
 
bool sdcd_wt =false
 true when interruption happens inside thresholds, false when outside thresholds
 

Detailed Description

Class to evaluate FXLS89xx.

Definition at line 65 of file FXLS89xx_Arduino.h.

Constructor & Destructor Documentation

◆ FXLS89xx_Arduino() [1/2]

FXLS89xx_Arduino::FXLS89xx_Arduino ( uint8_t  i2c_address = FXLS896x_DEVICE_ADDRESS_SA0_0)

Create a FXLS89xx_Arduino instance

Parameters
i2c_addressIf the device is configured with SA0=H, put FXLS896x_DEVICE_ADDRESS_SA0_1.

Definition at line 14 of file FXLS89xx_Arduino.cpp.

◆ FXLS89xx_Arduino() [2/2]

FXLS89xx_Arduino::FXLS89xx_Arduino ( TwoWire &  wire,
uint8_t  i2c_address = FXLS896x_DEVICE_ADDRESS_SA0_0 
)

Create a FXLS89xx_Arduino instance

Parameters
wireTwoWire instance
i2c_addressIf the device is configured with SA0=H, put FXLS896x_DEVICE_ADDRESS_SA0_1.

Definition at line 15 of file FXLS89xx_Arduino.cpp.

◆ ~FXLS89xx_Arduino()

FXLS89xx_Arduino::~FXLS89xx_Arduino ( )
virtual

Destructor of FXLS89xx_Arduino

Definition at line 16 of file FXLS89xx_Arduino.cpp.

Member Function Documentation

◆ bit_op8()

void FXLS89xx_Arduino::bit_op8 ( uint8_t  reg,
uint8_t  mask,
uint8_t  value 
)

Register overwriting with bit-mask

Register can be updated by bit level

Parameters
regregister index/address/pointer
maskbit-mask to protect overwriting
valuevalue to overwrite

Referenced by enable_sleep(), EXT_TRIG_init(), run(), and sdcd().

◆ enable_sleep()

void FXLS89xx_Arduino::enable_sleep ( uint16_t  asleep = 0)

Sleep mode enable.

Parameters
asleepAsleep count threshold: The device goes to SLEEP state when count reaches to this threshold value. The count increments when no interruption occurs.

Definition at line 67 of file FXLS89xx_Arduino.cpp.

◆ EXT_TRIG_init()

void FXLS89xx_Arduino::EXT_TRIG_init ( bool  pinconfig = true)

Initialize the pin configurations and register for EXT_TRIG mode.

Parameters
pinconfigIf you wouldn't like to config the pins by this function, put false in this parameter. This parameter can be skipped.

Definition at line 85 of file FXLS89xx_Arduino.cpp.

◆ EXT_TRIG_Trigger()

void FXLS89xx_Arduino::EXT_TRIG_Trigger ( )

Trigger the pin to start one-time conversion. Make sure once EXT_TRIG init is done first.

Definition at line 94 of file FXLS89xx_Arduino.cpp.

◆ init()

uint8_t FXLS89xx_Arduino::init ( bool  pinconfig = true)

Initialize the device with reset.

Parameters
pinconfigIf you wouldn't like to config the pins by this function, put false in this parameter. This parameter can be skipped.
Returns
WHO_AM_I register value

Definition at line 100 of file FXLS89xx_Arduino.cpp.

◆ ping()

bool FXLS89xx_Arduino::ping ( void  )

Ping the device

Returns
true when ACK

◆ read()

virtual float FXLS89xx_Arduino::read ( void  )
virtual

Get temperature value in degree Celsius [°C]

This method simply calls "temp()" method

Returns
temperature value in degree Celsius [°C]

◆ read_r16()

uint16_t FXLS89xx_Arduino::read_r16 ( uint8_t  reg)

Register read, 16 bit

This 16 bit access may ot be common but it's useful for sensor devices

Parameters
regregister index/address/pointer
Returns
data value

◆ read_r8()

uint8_t FXLS89xx_Arduino::read_r8 ( uint8_t  reg)

Register read, 8 bit

Parameters
regregister index/address/pointer
Returns
data value

Referenced by init().

◆ read_XYZ()

void FXLS89xx_Arduino::read_XYZ ( float *  pOutBuffer)

Read XYZ accelerometer value with unit milligravity.

Parameters
pOutBufferPointer to array to store register contents

Definition at line 75 of file FXLS89xx_Arduino.cpp.

◆ reg_r() [1/2]

uint8_t FXLS89xx_Arduino::reg_r ( uint8_t  reg_adr)

Single register read

Parameters
regregister index/address/pointer
Returns
read data

◆ reg_r() [2/2]

int FXLS89xx_Arduino::reg_r ( uint8_t  reg_adr,
uint8_t *  data,
uint16_t  size 
)

Multiple register read

Parameters
regregister index/address/pointer
datapointer to data buffer
sizedata size
Returns
transferred data size

Referenced by read_XYZ().

◆ reg_w() [1/2]

int FXLS89xx_Arduino::reg_w ( uint8_t  reg_adr,
uint8_t *  data,
uint16_t  size 
)

Multiple register write

Parameters
regregister index/address/pointer
datapointer to data buffer
sizedata size
Returns
transferred data size

Referenced by enable_sleep(), and sdcd().

◆ reg_w() [2/2]

int FXLS89xx_Arduino::reg_w ( uint8_t  reg_adr,
uint8_t  data 
)

Single register write

Parameters
regregister index/address/pointer
datapointer to data buffer
sizedata size
Returns
transferred data size

◆ run()

void FXLS89xx_Arduino::run ( bool  sdcd = false)

Start conversion based on the settings of sensor_range, wake_pm, sleep_pm, wake_odr, sleep_odr.

Parameters
sdcdIf you set SDCD mode (using SLEEP states), then put true here.

Definition at line 22 of file FXLS89xx_Arduino.cpp.

◆ sdcd()

void FXLS89xx_Arduino::sdcd ( ref_updm  ref,
XYZ  xyz,
float  upper_threshold,
float  lower_threshold,
uint8_t  debounce = 0 
)

Set SDCD function.

Parameters
ref_updm
upper_thresholdUpper threshold by milligravity
lower_thresholdLower threshold by milligravity
debounceDebounce counter threshold value set to both upper and lower threshold

Definition at line 33 of file FXLS89xx_Arduino.cpp.

Referenced by run().

◆ write_r16()

void FXLS89xx_Arduino::write_r16 ( uint8_t  reg,
uint16_t  val 
)

Register write, 16 bit

This 16 bit access may ot be common but it's useful for sensor devices

Parameters
regregister index/address/pointer
valdata value

◆ write_r8()

void FXLS89xx_Arduino::write_r8 ( uint8_t  reg,
uint8_t  val 
)

Register write, 8 bit

Parameters
regregister index/address/pointer
valdata value

Referenced by init(), and run().

Member Data Documentation

◆ sdcd_wt

bool FXLS89xx_Arduino::sdcd_wt =false

true when interruption happens inside thresholds, false when outside thresholds

Definition at line 72 of file FXLS89xx_Arduino.h.

Referenced by enable_sleep(), and sdcd().

◆ sensor_range

SensorRange FXLS89xx_Arduino::sensor_range = FXLS89xx_RANGE_2G

Sensor range selected through 2g,4g,8g,16g.

Definition at line 67 of file FXLS89xx_Arduino.h.

Referenced by read_XYZ(), run(), and sdcd().

◆ sleep_odr

odr_freq FXLS89xx_Arduino::sleep_odr = FXLS89xx_ODR_12_5HZ

ODR in SLEEP state.

Definition at line 71 of file FXLS89xx_Arduino.h.

Referenced by run().

◆ sleep_pm

PowerMode FXLS89xx_Arduino::sleep_pm = FXLS89xx_LPM

Power Mode in SLEEP state selected from LPM, HPM, FPM.

Definition at line 69 of file FXLS89xx_Arduino.h.

Referenced by run().

◆ wake_odr

odr_freq FXLS89xx_Arduino::wake_odr = FXLS89xx_ODR_100HZ

ODR in WAKE state.

Definition at line 70 of file FXLS89xx_Arduino.h.

Referenced by run().

◆ wake_pm

PowerMode FXLS89xx_Arduino::wake_pm = FXLS89xx_LPM

Power Mode in WAKE state selected from LPM, HPM, FPM.

Definition at line 68 of file FXLS89xx_Arduino.h.

Referenced by run().


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