clanged
This commit is contained in:
parent
5e608243f4
commit
e0f3708684
2 changed files with 69 additions and 64 deletions
|
|
@ -138,7 +138,7 @@ void Adafruit_MSA301::enableAxes(bool enableX, bool enableY, bool enableZ) {
|
|||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Set the power mode, MSA301_NORMALMODE, MSA301_LOWPOWERMODE or
|
||||
@brief Set the power mode, MSA301_NORMALMODE, MSA301_LOWPOWERMODE or
|
||||
MSA301_SUSPENDMODE
|
||||
@param mode Enumerated msa301_powermode_t
|
||||
*/
|
||||
|
|
@ -154,7 +154,8 @@ void Adafruit_MSA301::setPowerMode(msa301_powermode_t mode) {
|
|||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Get the power mode
|
||||
@returns Enumerated msa301_powermode_t, MSA301_NORMALMODE, MSA301_LOWPOWERMODE or
|
||||
@returns Enumerated msa301_powermode_t, MSA301_NORMALMODE,
|
||||
MSA301_LOWPOWERMODE or
|
||||
MSA301_SUSPENDMODE
|
||||
*/
|
||||
/**************************************************************************/
|
||||
|
|
@ -166,7 +167,6 @@ msa301_powermode_t Adafruit_MSA301::getPowerMode(void) {
|
|||
return (msa301_powermode_t)powermodebits.read();
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Set the bandwidth, ranges from 1.95Hz to 500Hz
|
||||
|
|
@ -181,7 +181,6 @@ void Adafruit_MSA301::setBandwidth(msa301_bandwidth_t bandwidth) {
|
|||
bandwidthbits.write((uint8_t)bandwidth);
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Get the bandwidth
|
||||
|
|
@ -299,7 +298,8 @@ void Adafruit_MSA301::read(void) {
|
|||
@param tap_quiet TAP_QUIET flag (check datasheet for details)
|
||||
@param tap_shock TAP_SHOCK flag (check datasheet for details)
|
||||
@param tapduration How long to listen for a tap (check datasheet for details)
|
||||
@param tapthresh How strong the tap signal has to be (check datasheet for details)
|
||||
@param tapthresh How strong the tap signal has to be (check datasheet for
|
||||
details)
|
||||
*/
|
||||
/**************************************************************************/
|
||||
|
||||
|
|
@ -328,7 +328,8 @@ void Adafruit_MSA301::setClick(bool tap_quiet, bool tap_shock,
|
|||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Gets the most recent click detect status register value
|
||||
@returns 8 bits of interrupt status, check datasheet for what CLICKSTATUS bits are
|
||||
@returns 8 bits of interrupt status, check datasheet for what CLICKSTATUS
|
||||
bits are
|
||||
*/
|
||||
/**************************************************************************/
|
||||
uint8_t Adafruit_MSA301::getClick(void) {
|
||||
|
|
@ -403,11 +404,11 @@ void Adafruit_MSA301::mapInterruptPin(bool singletap, bool doubletap,
|
|||
IntMap1.write(irqs);
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Gets the most recent motion interrupt status register value
|
||||
@returns 8 bits of interrupt status, check datasheet for what MOTION bits are
|
||||
@returns 8 bits of interrupt status, check datasheet for what MOTION bits
|
||||
are
|
||||
*/
|
||||
/**************************************************************************/
|
||||
|
||||
|
|
@ -421,7 +422,8 @@ uint8_t Adafruit_MSA301::getMotionInterruptStatus(void) {
|
|||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Gets the most recent data interrupt status register value
|
||||
@returns 8 bits of interrupt status, check datasheet for what DATAINT bits are
|
||||
@returns 8 bits of interrupt status, check datasheet for what DATAINT bits
|
||||
are
|
||||
*/
|
||||
/**************************************************************************/
|
||||
|
||||
|
|
@ -435,7 +437,8 @@ uint8_t Adafruit_MSA301::getDataInterruptStatus(void) {
|
|||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Gets the most recent sensor event, Adafruit Unified Sensor format
|
||||
@param event Pointer to an Adafruit Unified sensor_event_t object that we'll fill in
|
||||
@param event Pointer to an Adafruit Unified sensor_event_t object that
|
||||
we'll fill in
|
||||
@returns True on successful read
|
||||
*/
|
||||
/**************************************************************************/
|
||||
|
|
@ -460,7 +463,8 @@ bool Adafruit_MSA301::getEvent(sensors_event_t *event) {
|
|||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Gets the sensor_t device data, Adafruit Unified Sensor format
|
||||
@param sensor Pointer to an Adafruit Unified sensor_t object that we'll fill in
|
||||
@param sensor Pointer to an Adafruit Unified sensor_t object that we'll
|
||||
fill in
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void Adafruit_MSA301::getSensor(sensor_t *sensor) {
|
||||
|
|
|
|||
|
|
@ -24,28 +24,29 @@
|
|||
/*=========================================================================
|
||||
I2C ADDRESS/BITS
|
||||
-----------------------------------------------------------------------*/
|
||||
#define MSA301_I2CADDR_DEFAULT (0x26) ///< Fixed I2C address
|
||||
#define MSA301_I2CADDR_DEFAULT (0x26) ///< Fixed I2C address
|
||||
/*=========================================================================*/
|
||||
|
||||
#define MSA301_REG_PARTID 0x01 ///< Register that contains the part ID
|
||||
#define MSA301_REG_OUT_X_L 0x02 ///< Register address for X axis lower byte
|
||||
#define MSA301_REG_OUT_X_H 0x03 ///< Register address for X axis higher byte
|
||||
#define MSA301_REG_OUT_Y_L 0x04 ///< Register address for Y axis lower byte
|
||||
#define MSA301_REG_OUT_Y_H 0x05 ///< Register address for Y axis higher byte
|
||||
#define MSA301_REG_OUT_Z_L 0x06 ///< Register address for Z axis lower byte
|
||||
#define MSA301_REG_OUT_Z_H 0x07 ///< Register address for Z axis higher byte
|
||||
#define MSA301_REG_PARTID 0x01 ///< Register that contains the part ID
|
||||
#define MSA301_REG_OUT_X_L 0x02 ///< Register address for X axis lower byte
|
||||
#define MSA301_REG_OUT_X_H 0x03 ///< Register address for X axis higher byte
|
||||
#define MSA301_REG_OUT_Y_L 0x04 ///< Register address for Y axis lower byte
|
||||
#define MSA301_REG_OUT_Y_H 0x05 ///< Register address for Y axis higher byte
|
||||
#define MSA301_REG_OUT_Z_L 0x06 ///< Register address for Z axis lower byte
|
||||
#define MSA301_REG_OUT_Z_H 0x07 ///< Register address for Z axis higher byte
|
||||
#define MSA301_REG_MOTIONINT 0x09 ///< Register address for motion interrupt
|
||||
#define MSA301_REG_DATAINT 0x0A ///< Register address for data interrupt
|
||||
#define MSA301_REG_CLICKSTATUS 0x0B ///< Register address for click/doubleclick status
|
||||
#define MSA301_REG_DATAINT 0x0A ///< Register address for data interrupt
|
||||
#define MSA301_REG_CLICKSTATUS \
|
||||
0x0B ///< Register address for click/doubleclick status
|
||||
#define MSA301_REG_RESRANGE 0x0F ///< Register address for resolution range
|
||||
#define MSA301_REG_ODR 0x10 ///< Register address for data rate setting
|
||||
#define MSA301_REG_POWERMODE 0x11 ///< Register address for power mode setting
|
||||
#define MSA301_REG_INTSET0 0x16 ///< Register address for interrupt setting #0
|
||||
#define MSA301_REG_INTSET1 0x17 ///< Register address for interrupt setting #1
|
||||
#define MSA301_REG_INTMAP0 0x19 ///< Register address for interrupt map #0
|
||||
#define MSA301_REG_INTMAP1 0x1A ///< Register address for interrupt map #1
|
||||
#define MSA301_REG_TAPDUR 0x2A ///< Register address for tap duration
|
||||
#define MSA301_REG_TAPTH 0x2B ///< Register address for tap threshold
|
||||
#define MSA301_REG_ODR 0x10 ///< Register address for data rate setting
|
||||
#define MSA301_REG_POWERMODE 0x11 ///< Register address for power mode setting
|
||||
#define MSA301_REG_INTSET0 0x16 ///< Register address for interrupt setting #0
|
||||
#define MSA301_REG_INTSET1 0x17 ///< Register address for interrupt setting #1
|
||||
#define MSA301_REG_INTMAP0 0x19 ///< Register address for interrupt map #0
|
||||
#define MSA301_REG_INTMAP1 0x1A ///< Register address for interrupt map #1
|
||||
#define MSA301_REG_TAPDUR 0x2A ///< Register address for tap duration
|
||||
#define MSA301_REG_TAPTH 0x2B ///< Register address for tap threshold
|
||||
|
||||
/** The accelerometer ranges */
|
||||
typedef enum {
|
||||
|
|
@ -57,9 +58,9 @@ typedef enum {
|
|||
|
||||
/** The accelerometer axes */
|
||||
typedef enum {
|
||||
MSA301_AXIS_X = 0x0, ///< X axis bit
|
||||
MSA301_AXIS_Y = 0x1, ///< Y axis bit
|
||||
MSA301_AXIS_Z = 0x2, ///< Z axis bit
|
||||
MSA301_AXIS_X = 0x0, ///< X axis bit
|
||||
MSA301_AXIS_Y = 0x1, ///< Y axis bit
|
||||
MSA301_AXIS_Z = 0x2, ///< Z axis bit
|
||||
} msa301_axis_t;
|
||||
|
||||
/** The accelerometer data rate */
|
||||
|
|
@ -91,39 +92,39 @@ typedef enum {
|
|||
} msa301_bandwidth_t;
|
||||
|
||||
/** The accelerometer power mode */
|
||||
typedef enum {
|
||||
MSA301_NORMALMODE = 0b00, ///< Normal (high speed) mode
|
||||
MSA301_LOWPOWERMODE = 0b01, ///< Low power (slow speed) mode
|
||||
MSA301_SUSPENDMODE = 0b010, ///< Suspend (sleep) mode
|
||||
} msa301_powermode_t;
|
||||
typedef enum {
|
||||
MSA301_NORMALMODE = 0b00, ///< Normal (high speed) mode
|
||||
MSA301_LOWPOWERMODE = 0b01, ///< Low power (slow speed) mode
|
||||
MSA301_SUSPENDMODE = 0b010, ///< Suspend (sleep) mode
|
||||
} msa301_powermode_t;
|
||||
|
||||
/** The accelerometer read resolution */
|
||||
typedef enum {
|
||||
MSA301_RESOLUTION_14 = 0b00, ///< 14-bit resolution
|
||||
MSA301_RESOLUTION_12 = 0b01, ///< 12-bit resolution
|
||||
MSA301_RESOLUTION_10 = 0b10, ///< 10-bit resolution
|
||||
MSA301_RESOLUTION_8 = 0b11, ///< 8-bit resolution
|
||||
} msa301_resolution_t;
|
||||
typedef enum {
|
||||
MSA301_RESOLUTION_14 = 0b00, ///< 14-bit resolution
|
||||
MSA301_RESOLUTION_12 = 0b01, ///< 12-bit resolution
|
||||
MSA301_RESOLUTION_10 = 0b10, ///< 10-bit resolution
|
||||
MSA301_RESOLUTION_8 = 0b11, ///< 8-bit resolution
|
||||
} msa301_resolution_t;
|
||||
|
||||
/** Tap duration parameter */
|
||||
typedef enum {
|
||||
MSA301_TAPDUR_50_MS = 0b000, ///< 50 millis
|
||||
MSA301_TAPDUR_100_MS = 0b001, ///< 100 millis
|
||||
MSA301_TAPDUR_150_MS = 0b010, ///< 150 millis
|
||||
MSA301_TAPDUR_200_MS = 0b011, ///< 200 millis
|
||||
MSA301_TAPDUR_250_MS = 0b100, ///< 250 millis
|
||||
MSA301_TAPDUR_375_MS = 0b101, ///< 375 millis
|
||||
MSA301_TAPDUR_500_MS = 0b110, ///< 500 millis
|
||||
MSA301_TAPDUR_700_MS = 0b111, ///< 50 millis700 millis
|
||||
} msa301_tapduration_t;
|
||||
typedef enum {
|
||||
MSA301_TAPDUR_50_MS = 0b000, ///< 50 millis
|
||||
MSA301_TAPDUR_100_MS = 0b001, ///< 100 millis
|
||||
MSA301_TAPDUR_150_MS = 0b010, ///< 150 millis
|
||||
MSA301_TAPDUR_200_MS = 0b011, ///< 200 millis
|
||||
MSA301_TAPDUR_250_MS = 0b100, ///< 250 millis
|
||||
MSA301_TAPDUR_375_MS = 0b101, ///< 375 millis
|
||||
MSA301_TAPDUR_500_MS = 0b110, ///< 500 millis
|
||||
MSA301_TAPDUR_700_MS = 0b111, ///< 50 millis700 millis
|
||||
} msa301_tapduration_t;
|
||||
|
||||
/** Interrupts available */
|
||||
typedef enum {
|
||||
MSA301_INT_ORIENT = 0b100000, ///< Orientation change interrupt
|
||||
MSA301_INT_SINGLETAP, ///< Single tap interrupt
|
||||
MSA301_INT_DOUBLETAP, ///< Double tap interrupt
|
||||
MSA301_INT_ACTIVE, ///< Active motion interrupt
|
||||
MSA301_INT_NEWDATA, ///< New data interrupt
|
||||
typedef enum {
|
||||
MSA301_INT_ORIENT = 0b100000, ///< Orientation change interrupt
|
||||
MSA301_INT_SINGLETAP, ///< Single tap interrupt
|
||||
MSA301_INT_DOUBLETAP, ///< Double tap interrupt
|
||||
MSA301_INT_ACTIVE, ///< Active motion interrupt
|
||||
MSA301_INT_NEWDATA, ///< New data interrupt
|
||||
} msa301_interrupt_t;
|
||||
|
||||
/** Class for hardware interfacing with an MSA301 accelerometer */
|
||||
|
|
@ -170,12 +171,12 @@ public:
|
|||
|
||||
*/
|
||||
|
||||
int16_t x, ///< The last read X acceleration in raw units
|
||||
y, ///< The last read Y acceleration in raw units
|
||||
z; ///< The last read Z acceleration in raw units
|
||||
int16_t x, ///< The last read X acceleration in raw units
|
||||
y, ///< The last read Y acceleration in raw units
|
||||
z; ///< The last read Z acceleration in raw units
|
||||
float x_g, ///< The last read X acceleration in 'g'
|
||||
y_g, ///< The last read Y acceleration in 'g'
|
||||
z_g; ///< The last read X acceleration in 'g'
|
||||
y_g, ///< The last read Y acceleration in 'g'
|
||||
z_g; ///< The last read X acceleration in 'g'
|
||||
|
||||
private:
|
||||
Adafruit_I2CDevice *i2c_dev;
|
||||
|
|
|
|||
Loading…
Reference in a new issue