Apply clang-format to source files
Some checks failed
Arduino Library CI / build (push) Has been cancelled
Some checks failed
Arduino Library CI / build (push) Has been cancelled
- Format Adafruit_STHS34PF80.h and Adafruit_STHS34PF80.cpp with Google C++ style - 2-space indentation, 80-character line limit, left-aligned pointers - Consistent formatting for function declarations and definitions
This commit is contained in:
parent
2df7d9b529
commit
45bfd32b12
2 changed files with 325 additions and 297 deletions
|
|
@ -48,7 +48,7 @@ Adafruit_STHS34PF80::~Adafruit_STHS34PF80() {
|
||||||
* @param wire The Wire object to be used for I2C connections
|
* @param wire The Wire object to be used for I2C connections
|
||||||
* @return True if initialization was successful, otherwise false
|
* @return True if initialization was successful, otherwise false
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::begin(uint8_t i2c_addr, TwoWire *wire) {
|
bool Adafruit_STHS34PF80::begin(uint8_t i2c_addr, TwoWire* wire) {
|
||||||
if (i2c_dev) {
|
if (i2c_dev) {
|
||||||
delete i2c_dev;
|
delete i2c_dev;
|
||||||
}
|
}
|
||||||
|
|
@ -71,15 +71,15 @@ bool Adafruit_STHS34PF80::begin(uint8_t i2c_addr, TwoWire *wire) {
|
||||||
if (!setObjAveraging(STHS34PF80_AVG_TMOS_32)) {
|
if (!setObjAveraging(STHS34PF80_AVG_TMOS_32)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!setAmbTempAveraging(STHS34PF80_AVG_T_8)) {
|
if (!setAmbTempAveraging(STHS34PF80_AVG_T_8)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!setBlockDataUpdate(true)) {
|
if (!setBlockDataUpdate(true)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!setOutputDataRate(STHS34PF80_ODR_1_HZ)) {
|
if (!setOutputDataRate(STHS34PF80_ODR_1_HZ)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -96,8 +96,8 @@ bool Adafruit_STHS34PF80::isConnected() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Adafruit_BusIO_Register chip_id = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register chip_id =
|
||||||
i2c_dev, STHS34PF80_REG_WHO_AM_I, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_WHO_AM_I, 1);
|
||||||
|
|
||||||
return chip_id.read() == 0xD3;
|
return chip_id.read() == 0xD3;
|
||||||
}
|
}
|
||||||
|
|
@ -128,13 +128,14 @@ bool Adafruit_STHS34PF80::reset() {
|
||||||
* @param config The LPF configuration value
|
* @param config The LPF configuration value
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::setMotionLowPassFilter(sths34pf80_lpf_config_t config) {
|
bool Adafruit_STHS34PF80::setMotionLowPassFilter(
|
||||||
Adafruit_BusIO_Register lpf1_reg = Adafruit_BusIO_Register(
|
sths34pf80_lpf_config_t config) {
|
||||||
i2c_dev, STHS34PF80_REG_LPF1, 1);
|
Adafruit_BusIO_Register lpf1_reg =
|
||||||
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF1, 1);
|
||||||
Adafruit_BusIO_RegisterBits lpf_m_bits = Adafruit_BusIO_RegisterBits(
|
|
||||||
&lpf1_reg, 3, 0);
|
Adafruit_BusIO_RegisterBits lpf_m_bits =
|
||||||
|
Adafruit_BusIO_RegisterBits(&lpf1_reg, 3, 0);
|
||||||
|
|
||||||
return lpf_m_bits.write(config);
|
return lpf_m_bits.write(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -143,12 +144,12 @@ bool Adafruit_STHS34PF80::setMotionLowPassFilter(sths34pf80_lpf_config_t config)
|
||||||
* @return The current LPF configuration value
|
* @return The current LPF configuration value
|
||||||
*/
|
*/
|
||||||
sths34pf80_lpf_config_t Adafruit_STHS34PF80::getMotionLowPassFilter() {
|
sths34pf80_lpf_config_t Adafruit_STHS34PF80::getMotionLowPassFilter() {
|
||||||
Adafruit_BusIO_Register lpf1_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register lpf1_reg =
|
||||||
i2c_dev, STHS34PF80_REG_LPF1, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF1, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits lpf_m_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits lpf_m_bits =
|
||||||
&lpf1_reg, 3, 0);
|
Adafruit_BusIO_RegisterBits(&lpf1_reg, 3, 0);
|
||||||
|
|
||||||
return (sths34pf80_lpf_config_t)lpf_m_bits.read();
|
return (sths34pf80_lpf_config_t)lpf_m_bits.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -157,13 +158,14 @@ sths34pf80_lpf_config_t Adafruit_STHS34PF80::getMotionLowPassFilter() {
|
||||||
* @param config The LPF configuration value
|
* @param config The LPF configuration value
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::setMotionPresenceLowPassFilter(sths34pf80_lpf_config_t config) {
|
bool Adafruit_STHS34PF80::setMotionPresenceLowPassFilter(
|
||||||
Adafruit_BusIO_Register lpf1_reg = Adafruit_BusIO_Register(
|
sths34pf80_lpf_config_t config) {
|
||||||
i2c_dev, STHS34PF80_REG_LPF1, 1);
|
Adafruit_BusIO_Register lpf1_reg =
|
||||||
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF1, 1);
|
||||||
Adafruit_BusIO_RegisterBits lpf_p_m_bits = Adafruit_BusIO_RegisterBits(
|
|
||||||
&lpf1_reg, 3, 3);
|
Adafruit_BusIO_RegisterBits lpf_p_m_bits =
|
||||||
|
Adafruit_BusIO_RegisterBits(&lpf1_reg, 3, 3);
|
||||||
|
|
||||||
return lpf_p_m_bits.write(config);
|
return lpf_p_m_bits.write(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -172,12 +174,12 @@ bool Adafruit_STHS34PF80::setMotionPresenceLowPassFilter(sths34pf80_lpf_config_t
|
||||||
* @return The current LPF configuration value
|
* @return The current LPF configuration value
|
||||||
*/
|
*/
|
||||||
sths34pf80_lpf_config_t Adafruit_STHS34PF80::getMotionPresenceLowPassFilter() {
|
sths34pf80_lpf_config_t Adafruit_STHS34PF80::getMotionPresenceLowPassFilter() {
|
||||||
Adafruit_BusIO_Register lpf1_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register lpf1_reg =
|
||||||
i2c_dev, STHS34PF80_REG_LPF1, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF1, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits lpf_p_m_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits lpf_p_m_bits =
|
||||||
&lpf1_reg, 3, 3);
|
Adafruit_BusIO_RegisterBits(&lpf1_reg, 3, 3);
|
||||||
|
|
||||||
return (sths34pf80_lpf_config_t)lpf_p_m_bits.read();
|
return (sths34pf80_lpf_config_t)lpf_p_m_bits.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -186,13 +188,14 @@ sths34pf80_lpf_config_t Adafruit_STHS34PF80::getMotionPresenceLowPassFilter() {
|
||||||
* @param config The LPF configuration value
|
* @param config The LPF configuration value
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::setPresenceLowPassFilter(sths34pf80_lpf_config_t config) {
|
bool Adafruit_STHS34PF80::setPresenceLowPassFilter(
|
||||||
Adafruit_BusIO_Register lpf2_reg = Adafruit_BusIO_Register(
|
sths34pf80_lpf_config_t config) {
|
||||||
i2c_dev, STHS34PF80_REG_LPF2, 1);
|
Adafruit_BusIO_Register lpf2_reg =
|
||||||
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF2, 1);
|
||||||
Adafruit_BusIO_RegisterBits lpf_p_bits = Adafruit_BusIO_RegisterBits(
|
|
||||||
&lpf2_reg, 3, 3);
|
Adafruit_BusIO_RegisterBits lpf_p_bits =
|
||||||
|
Adafruit_BusIO_RegisterBits(&lpf2_reg, 3, 3);
|
||||||
|
|
||||||
return lpf_p_bits.write(config);
|
return lpf_p_bits.write(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -201,41 +204,44 @@ bool Adafruit_STHS34PF80::setPresenceLowPassFilter(sths34pf80_lpf_config_t confi
|
||||||
* @return The current LPF configuration value
|
* @return The current LPF configuration value
|
||||||
*/
|
*/
|
||||||
sths34pf80_lpf_config_t Adafruit_STHS34PF80::getPresenceLowPassFilter() {
|
sths34pf80_lpf_config_t Adafruit_STHS34PF80::getPresenceLowPassFilter() {
|
||||||
Adafruit_BusIO_Register lpf2_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register lpf2_reg =
|
||||||
i2c_dev, STHS34PF80_REG_LPF2, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF2, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits lpf_p_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits lpf_p_bits =
|
||||||
&lpf2_reg, 3, 3);
|
Adafruit_BusIO_RegisterBits(&lpf2_reg, 3, 3);
|
||||||
|
|
||||||
return (sths34pf80_lpf_config_t)lpf_p_bits.read();
|
return (sths34pf80_lpf_config_t)lpf_p_bits.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Set the ambient temperature shock detection low-pass filter configuration
|
* @brief Set the ambient temperature shock detection low-pass filter
|
||||||
|
* configuration
|
||||||
* @param config The LPF configuration value
|
* @param config The LPF configuration value
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::setTemperatureLowPassFilter(sths34pf80_lpf_config_t config) {
|
bool Adafruit_STHS34PF80::setTemperatureLowPassFilter(
|
||||||
Adafruit_BusIO_Register lpf2_reg = Adafruit_BusIO_Register(
|
sths34pf80_lpf_config_t config) {
|
||||||
i2c_dev, STHS34PF80_REG_LPF2, 1);
|
Adafruit_BusIO_Register lpf2_reg =
|
||||||
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF2, 1);
|
||||||
Adafruit_BusIO_RegisterBits lpf_a_t_bits = Adafruit_BusIO_RegisterBits(
|
|
||||||
&lpf2_reg, 3, 0);
|
Adafruit_BusIO_RegisterBits lpf_a_t_bits =
|
||||||
|
Adafruit_BusIO_RegisterBits(&lpf2_reg, 3, 0);
|
||||||
|
|
||||||
return lpf_a_t_bits.write(config);
|
return lpf_a_t_bits.write(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Get the ambient temperature shock detection low-pass filter configuration
|
* @brief Get the ambient temperature shock detection low-pass filter
|
||||||
|
* configuration
|
||||||
* @return The current LPF configuration value
|
* @return The current LPF configuration value
|
||||||
*/
|
*/
|
||||||
sths34pf80_lpf_config_t Adafruit_STHS34PF80::getTemperatureLowPassFilter() {
|
sths34pf80_lpf_config_t Adafruit_STHS34PF80::getTemperatureLowPassFilter() {
|
||||||
Adafruit_BusIO_Register lpf2_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register lpf2_reg =
|
||||||
i2c_dev, STHS34PF80_REG_LPF2, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_LPF2, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits lpf_a_t_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits lpf_a_t_bits =
|
||||||
&lpf2_reg, 3, 0);
|
Adafruit_BusIO_RegisterBits(&lpf2_reg, 3, 0);
|
||||||
|
|
||||||
return (sths34pf80_lpf_config_t)lpf_a_t_bits.read();
|
return (sths34pf80_lpf_config_t)lpf_a_t_bits.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -245,12 +251,12 @@ sths34pf80_lpf_config_t Adafruit_STHS34PF80::getTemperatureLowPassFilter() {
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::setAmbTempAveraging(sths34pf80_avg_t_t config) {
|
bool Adafruit_STHS34PF80::setAmbTempAveraging(sths34pf80_avg_t_t config) {
|
||||||
Adafruit_BusIO_Register avg_trim_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register avg_trim_reg =
|
||||||
i2c_dev, STHS34PF80_REG_AVG_TRIM, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_AVG_TRIM, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits avg_t_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits avg_t_bits =
|
||||||
&avg_trim_reg, 2, 4);
|
Adafruit_BusIO_RegisterBits(&avg_trim_reg, 2, 4);
|
||||||
|
|
||||||
return avg_t_bits.write(config);
|
return avg_t_bits.write(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -259,12 +265,12 @@ bool Adafruit_STHS34PF80::setAmbTempAveraging(sths34pf80_avg_t_t config) {
|
||||||
* @return The current averaging configuration value
|
* @return The current averaging configuration value
|
||||||
*/
|
*/
|
||||||
sths34pf80_avg_t_t Adafruit_STHS34PF80::getAmbTempAveraging() {
|
sths34pf80_avg_t_t Adafruit_STHS34PF80::getAmbTempAveraging() {
|
||||||
Adafruit_BusIO_Register avg_trim_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register avg_trim_reg =
|
||||||
i2c_dev, STHS34PF80_REG_AVG_TRIM, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_AVG_TRIM, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits avg_t_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits avg_t_bits =
|
||||||
&avg_trim_reg, 2, 4);
|
Adafruit_BusIO_RegisterBits(&avg_trim_reg, 2, 4);
|
||||||
|
|
||||||
return (sths34pf80_avg_t_t)avg_t_bits.read();
|
return (sths34pf80_avg_t_t)avg_t_bits.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -274,12 +280,12 @@ sths34pf80_avg_t_t Adafruit_STHS34PF80::getAmbTempAveraging() {
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::setObjAveraging(sths34pf80_avg_tmos_t config) {
|
bool Adafruit_STHS34PF80::setObjAveraging(sths34pf80_avg_tmos_t config) {
|
||||||
Adafruit_BusIO_Register avg_trim_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register avg_trim_reg =
|
||||||
i2c_dev, STHS34PF80_REG_AVG_TRIM, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_AVG_TRIM, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits avg_tmos_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits avg_tmos_bits =
|
||||||
&avg_trim_reg, 3, 0);
|
Adafruit_BusIO_RegisterBits(&avg_trim_reg, 3, 0);
|
||||||
|
|
||||||
return avg_tmos_bits.write(config);
|
return avg_tmos_bits.write(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -288,12 +294,12 @@ bool Adafruit_STHS34PF80::setObjAveraging(sths34pf80_avg_tmos_t config) {
|
||||||
* @return The current averaging configuration value
|
* @return The current averaging configuration value
|
||||||
*/
|
*/
|
||||||
sths34pf80_avg_tmos_t Adafruit_STHS34PF80::getObjAveraging() {
|
sths34pf80_avg_tmos_t Adafruit_STHS34PF80::getObjAveraging() {
|
||||||
Adafruit_BusIO_Register avg_trim_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register avg_trim_reg =
|
||||||
i2c_dev, STHS34PF80_REG_AVG_TRIM, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_AVG_TRIM, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits avg_tmos_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits avg_tmos_bits =
|
||||||
&avg_trim_reg, 3, 0);
|
Adafruit_BusIO_RegisterBits(&avg_trim_reg, 3, 0);
|
||||||
|
|
||||||
return (sths34pf80_avg_tmos_t)avg_tmos_bits.read();
|
return (sths34pf80_avg_tmos_t)avg_tmos_bits.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -303,12 +309,12 @@ sths34pf80_avg_tmos_t Adafruit_STHS34PF80::getObjAveraging() {
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::setWideGainMode(bool wide_mode) {
|
bool Adafruit_STHS34PF80::setWideGainMode(bool wide_mode) {
|
||||||
Adafruit_BusIO_Register ctrl0_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl0_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL0, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL0, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits gain_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits gain_bits =
|
||||||
&ctrl0_reg, 3, 4);
|
Adafruit_BusIO_RegisterBits(&ctrl0_reg, 3, 4);
|
||||||
|
|
||||||
return gain_bits.write(wide_mode ? 0x00 : 0x07);
|
return gain_bits.write(wide_mode ? 0x00 : 0x07);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -317,12 +323,12 @@ bool Adafruit_STHS34PF80::setWideGainMode(bool wide_mode) {
|
||||||
* @return True if in wide mode, false if in default gain mode
|
* @return True if in wide mode, false if in default gain mode
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::getWideGainMode() {
|
bool Adafruit_STHS34PF80::getWideGainMode() {
|
||||||
Adafruit_BusIO_Register ctrl0_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl0_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL0, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL0, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits gain_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits gain_bits =
|
||||||
&ctrl0_reg, 3, 4);
|
Adafruit_BusIO_RegisterBits(&ctrl0_reg, 3, 4);
|
||||||
|
|
||||||
return gain_bits.read() == 0x00;
|
return gain_bits.read() == 0x00;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -332,9 +338,9 @@ bool Adafruit_STHS34PF80::getWideGainMode() {
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::setSensitivity(int8_t sensitivity) {
|
bool Adafruit_STHS34PF80::setSensitivity(int8_t sensitivity) {
|
||||||
Adafruit_BusIO_Register sens_data_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register sens_data_reg =
|
||||||
i2c_dev, STHS34PF80_REG_SENS_DATA, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_SENS_DATA, 1);
|
||||||
|
|
||||||
return sens_data_reg.write((uint8_t)sensitivity);
|
return sens_data_reg.write((uint8_t)sensitivity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -343,9 +349,9 @@ bool Adafruit_STHS34PF80::setSensitivity(int8_t sensitivity) {
|
||||||
* @return Signed 8-bit sensitivity value (two's complement)
|
* @return Signed 8-bit sensitivity value (two's complement)
|
||||||
*/
|
*/
|
||||||
int8_t Adafruit_STHS34PF80::getSensitivity() {
|
int8_t Adafruit_STHS34PF80::getSensitivity() {
|
||||||
Adafruit_BusIO_Register sens_data_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register sens_data_reg =
|
||||||
i2c_dev, STHS34PF80_REG_SENS_DATA, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_SENS_DATA, 1);
|
||||||
|
|
||||||
return (int8_t)sens_data_reg.read();
|
return (int8_t)sens_data_reg.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -355,12 +361,12 @@ int8_t Adafruit_STHS34PF80::getSensitivity() {
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::setBlockDataUpdate(bool enable) {
|
bool Adafruit_STHS34PF80::setBlockDataUpdate(bool enable) {
|
||||||
Adafruit_BusIO_Register ctrl1_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl1_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL1, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL1, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits bdu_bit = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits bdu_bit =
|
||||||
&ctrl1_reg, 1, 4);
|
Adafruit_BusIO_RegisterBits(&ctrl1_reg, 1, 4);
|
||||||
|
|
||||||
return bdu_bit.write(enable ? 1 : 0);
|
return bdu_bit.write(enable ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -369,12 +375,12 @@ bool Adafruit_STHS34PF80::setBlockDataUpdate(bool enable) {
|
||||||
* @return True if block data update is enabled, false if disabled
|
* @return True if block data update is enabled, false if disabled
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::getBlockDataUpdate() {
|
bool Adafruit_STHS34PF80::getBlockDataUpdate() {
|
||||||
Adafruit_BusIO_Register ctrl1_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl1_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL1, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL1, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits bdu_bit = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits bdu_bit =
|
||||||
&ctrl1_reg, 1, 4);
|
Adafruit_BusIO_RegisterBits(&ctrl1_reg, 1, 4);
|
||||||
|
|
||||||
return bdu_bit.read() == 1;
|
return bdu_bit.read() == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -399,12 +405,13 @@ bool Adafruit_STHS34PF80::setOutputDataRate(sths34pf80_odr_t odr) {
|
||||||
// ret = sths34pf80_read_reg(ctx, STHS34PF80_CTRL1, (uint8_t *)&ctrl1, 1);
|
// ret = sths34pf80_read_reg(ctx, STHS34PF80_CTRL1, (uint8_t *)&ctrl1, 1);
|
||||||
// if (ret == 0)
|
// if (ret == 0)
|
||||||
// {
|
// {
|
||||||
// ret = sths34pf80_read_reg(ctx, STHS34PF80_AVG_TRIM, (uint8_t *)&avg_trim, 1);
|
// ret = sths34pf80_read_reg(ctx, STHS34PF80_AVG_TRIM, (uint8_t *)&avg_trim,
|
||||||
|
// 1);
|
||||||
sths34pf80_avg_tmos_t avg_tmos = getObjAveraging();
|
sths34pf80_avg_tmos_t avg_tmos = getObjAveraging();
|
||||||
|
|
||||||
// switch(avg_trim.avg_tmos)
|
// switch(avg_trim.avg_tmos)
|
||||||
// {
|
// {
|
||||||
switch(avg_tmos) {
|
switch (avg_tmos) {
|
||||||
// default:
|
// default:
|
||||||
// case STHS34PF80_AVG_TMOS_2:
|
// case STHS34PF80_AVG_TMOS_2:
|
||||||
// case STHS34PF80_AVG_TMOS_8:
|
// case STHS34PF80_AVG_TMOS_8:
|
||||||
|
|
@ -469,12 +476,12 @@ bool Adafruit_STHS34PF80::setOutputDataRate(sths34pf80_odr_t odr) {
|
||||||
* @return The current output data rate value
|
* @return The current output data rate value
|
||||||
*/
|
*/
|
||||||
sths34pf80_odr_t Adafruit_STHS34PF80::getOutputDataRate() {
|
sths34pf80_odr_t Adafruit_STHS34PF80::getOutputDataRate() {
|
||||||
Adafruit_BusIO_Register ctrl1_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl1_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL1, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL1, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits odr_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits odr_bits =
|
||||||
&ctrl1_reg, 4, 0);
|
Adafruit_BusIO_RegisterBits(&ctrl1_reg, 4, 0);
|
||||||
|
|
||||||
return (sths34pf80_odr_t)odr_bits.read();
|
return (sths34pf80_odr_t)odr_bits.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -483,12 +490,12 @@ sths34pf80_odr_t Adafruit_STHS34PF80::getOutputDataRate() {
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::rebootOTPmemory() {
|
bool Adafruit_STHS34PF80::rebootOTPmemory() {
|
||||||
Adafruit_BusIO_Register ctrl2_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl2_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL2, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL2, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits boot_bit = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits boot_bit =
|
||||||
&ctrl2_reg, 1, 7);
|
Adafruit_BusIO_RegisterBits(&ctrl2_reg, 1, 7);
|
||||||
|
|
||||||
return boot_bit.write(1);
|
return boot_bit.write(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -498,12 +505,12 @@ bool Adafruit_STHS34PF80::rebootOTPmemory() {
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::enableEmbeddedFuncPage(bool enable) {
|
bool Adafruit_STHS34PF80::enableEmbeddedFuncPage(bool enable) {
|
||||||
Adafruit_BusIO_Register ctrl2_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl2_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL2, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL2, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits func_cfg_access_bit = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits func_cfg_access_bit =
|
||||||
&ctrl2_reg, 1, 4);
|
Adafruit_BusIO_RegisterBits(&ctrl2_reg, 1, 4);
|
||||||
|
|
||||||
return func_cfg_access_bit.write(enable ? 1 : 0);
|
return func_cfg_access_bit.write(enable ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -512,12 +519,12 @@ bool Adafruit_STHS34PF80::enableEmbeddedFuncPage(bool enable) {
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::triggerOneshot() {
|
bool Adafruit_STHS34PF80::triggerOneshot() {
|
||||||
Adafruit_BusIO_Register ctrl2_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl2_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL2, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL2, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits oneshot_bit = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits oneshot_bit =
|
||||||
&ctrl2_reg, 1, 0);
|
Adafruit_BusIO_RegisterBits(&ctrl2_reg, 1, 0);
|
||||||
|
|
||||||
return oneshot_bit.write(1);
|
return oneshot_bit.write(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -527,12 +534,12 @@ bool Adafruit_STHS34PF80::triggerOneshot() {
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::setIntPolarity(bool active_low) {
|
bool Adafruit_STHS34PF80::setIntPolarity(bool active_low) {
|
||||||
Adafruit_BusIO_Register ctrl3_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl3_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL3, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL3, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits int_h_l_bit = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits int_h_l_bit =
|
||||||
&ctrl3_reg, 1, 7);
|
Adafruit_BusIO_RegisterBits(&ctrl3_reg, 1, 7);
|
||||||
|
|
||||||
return int_h_l_bit.write(active_low ? 1 : 0);
|
return int_h_l_bit.write(active_low ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -542,12 +549,12 @@ bool Adafruit_STHS34PF80::setIntPolarity(bool active_low) {
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::setIntOpenDrain(bool open_drain) {
|
bool Adafruit_STHS34PF80::setIntOpenDrain(bool open_drain) {
|
||||||
Adafruit_BusIO_Register ctrl3_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl3_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL3, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL3, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits pp_od_bit = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits pp_od_bit =
|
||||||
&ctrl3_reg, 1, 6);
|
Adafruit_BusIO_RegisterBits(&ctrl3_reg, 1, 6);
|
||||||
|
|
||||||
return pp_od_bit.write(open_drain ? 1 : 0);
|
return pp_od_bit.write(open_drain ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -557,41 +564,43 @@ bool Adafruit_STHS34PF80::setIntOpenDrain(bool open_drain) {
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::setIntLatched(bool latched) {
|
bool Adafruit_STHS34PF80::setIntLatched(bool latched) {
|
||||||
Adafruit_BusIO_Register ctrl3_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl3_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL3, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL3, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits int_latched_bit = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits int_latched_bit =
|
||||||
&ctrl3_reg, 1, 2);
|
Adafruit_BusIO_RegisterBits(&ctrl3_reg, 1, 2);
|
||||||
|
|
||||||
return int_latched_bit.write(latched ? 1 : 0);
|
return int_latched_bit.write(latched ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Set interrupt mask for function status flags
|
* @brief Set interrupt mask for function status flags
|
||||||
* @param mask Interrupt mask (bits 2:0 for PRES_FLAG, MOT_FLAG, TAMB_SHOCK_FLAG)
|
* @param mask Interrupt mask (bits 2:0 for PRES_FLAG, MOT_FLAG,
|
||||||
|
* TAMB_SHOCK_FLAG)
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::setIntMask(uint8_t mask) {
|
bool Adafruit_STHS34PF80::setIntMask(uint8_t mask) {
|
||||||
Adafruit_BusIO_Register ctrl3_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl3_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL3, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL3, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits int_mask_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits int_mask_bits =
|
||||||
&ctrl3_reg, 3, 3);
|
Adafruit_BusIO_RegisterBits(&ctrl3_reg, 3, 3);
|
||||||
|
|
||||||
return int_mask_bits.write(mask & 0x07);
|
return int_mask_bits.write(mask & 0x07);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Get interrupt mask for function status flags
|
* @brief Get interrupt mask for function status flags
|
||||||
* @return Current interrupt mask value (bits 2:0 for PRES_FLAG, MOT_FLAG, TAMB_SHOCK_FLAG)
|
* @return Current interrupt mask value (bits 2:0 for PRES_FLAG, MOT_FLAG,
|
||||||
|
* TAMB_SHOCK_FLAG)
|
||||||
*/
|
*/
|
||||||
uint8_t Adafruit_STHS34PF80::getIntMask() {
|
uint8_t Adafruit_STHS34PF80::getIntMask() {
|
||||||
Adafruit_BusIO_Register ctrl3_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl3_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL3, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL3, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits int_mask_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits int_mask_bits =
|
||||||
&ctrl3_reg, 3, 3);
|
Adafruit_BusIO_RegisterBits(&ctrl3_reg, 3, 3);
|
||||||
|
|
||||||
return int_mask_bits.read();
|
return int_mask_bits.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -601,12 +610,12 @@ uint8_t Adafruit_STHS34PF80::getIntMask() {
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::setIntSignal(sths34pf80_int_signal_t signal) {
|
bool Adafruit_STHS34PF80::setIntSignal(sths34pf80_int_signal_t signal) {
|
||||||
Adafruit_BusIO_Register ctrl3_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl3_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL3, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL3, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits ien_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits ien_bits =
|
||||||
&ctrl3_reg, 2, 0);
|
Adafruit_BusIO_RegisterBits(&ctrl3_reg, 2, 0);
|
||||||
|
|
||||||
return ien_bits.write(signal);
|
return ien_bits.write(signal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -615,12 +624,12 @@ bool Adafruit_STHS34PF80::setIntSignal(sths34pf80_int_signal_t signal) {
|
||||||
* @return Current interrupt signal type
|
* @return Current interrupt signal type
|
||||||
*/
|
*/
|
||||||
sths34pf80_int_signal_t Adafruit_STHS34PF80::getIntSignal() {
|
sths34pf80_int_signal_t Adafruit_STHS34PF80::getIntSignal() {
|
||||||
Adafruit_BusIO_Register ctrl3_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl3_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL3, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL3, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits ien_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits ien_bits =
|
||||||
&ctrl3_reg, 2, 0);
|
Adafruit_BusIO_RegisterBits(&ctrl3_reg, 2, 0);
|
||||||
|
|
||||||
return (sths34pf80_int_signal_t)ien_bits.read();
|
return (sths34pf80_int_signal_t)ien_bits.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -629,12 +638,12 @@ sths34pf80_int_signal_t Adafruit_STHS34PF80::getIntSignal() {
|
||||||
* @return True if new data is available, false otherwise
|
* @return True if new data is available, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::isDataReady() {
|
bool Adafruit_STHS34PF80::isDataReady() {
|
||||||
Adafruit_BusIO_Register status_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register status_reg =
|
||||||
i2c_dev, STHS34PF80_REG_STATUS, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_STATUS, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits drdy_bit = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits drdy_bit =
|
||||||
&status_reg, 1, 2);
|
Adafruit_BusIO_RegisterBits(&status_reg, 1, 2);
|
||||||
|
|
||||||
return drdy_bit.read() == 1;
|
return drdy_bit.read() == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -643,12 +652,12 @@ bool Adafruit_STHS34PF80::isDataReady() {
|
||||||
* @return True if presence is detected, false otherwise
|
* @return True if presence is detected, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::isPresence() {
|
bool Adafruit_STHS34PF80::isPresence() {
|
||||||
Adafruit_BusIO_Register func_status_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register func_status_reg =
|
||||||
i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits pres_flag_bit = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits pres_flag_bit =
|
||||||
&func_status_reg, 1, 2);
|
Adafruit_BusIO_RegisterBits(&func_status_reg, 1, 2);
|
||||||
|
|
||||||
return pres_flag_bit.read() == 1;
|
return pres_flag_bit.read() == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -657,12 +666,12 @@ bool Adafruit_STHS34PF80::isPresence() {
|
||||||
* @return True if motion is detected, false otherwise
|
* @return True if motion is detected, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::isMotion() {
|
bool Adafruit_STHS34PF80::isMotion() {
|
||||||
Adafruit_BusIO_Register func_status_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register func_status_reg =
|
||||||
i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits mot_flag_bit = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits mot_flag_bit =
|
||||||
&func_status_reg, 1, 1);
|
Adafruit_BusIO_RegisterBits(&func_status_reg, 1, 1);
|
||||||
|
|
||||||
return mot_flag_bit.read() == 1;
|
return mot_flag_bit.read() == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -671,12 +680,12 @@ bool Adafruit_STHS34PF80::isMotion() {
|
||||||
* @return True if temperature shock is detected, false otherwise
|
* @return True if temperature shock is detected, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::isTempShock() {
|
bool Adafruit_STHS34PF80::isTempShock() {
|
||||||
Adafruit_BusIO_Register func_status_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register func_status_reg =
|
||||||
i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits tamb_shock_flag_bit = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits tamb_shock_flag_bit =
|
||||||
&func_status_reg, 1, 0);
|
Adafruit_BusIO_RegisterBits(&func_status_reg, 1, 0);
|
||||||
|
|
||||||
return tamb_shock_flag_bit.read() == 1;
|
return tamb_shock_flag_bit.read() == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -685,9 +694,9 @@ bool Adafruit_STHS34PF80::isTempShock() {
|
||||||
* @return 16-bit signed object temperature value
|
* @return 16-bit signed object temperature value
|
||||||
*/
|
*/
|
||||||
int16_t Adafruit_STHS34PF80::readObjectTemperature() {
|
int16_t Adafruit_STHS34PF80::readObjectTemperature() {
|
||||||
Adafruit_BusIO_Register tobj_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register tobj_reg =
|
||||||
i2c_dev, STHS34PF80_REG_TOBJECT_L, 2, LSBFIRST);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_TOBJECT_L, 2, LSBFIRST);
|
||||||
|
|
||||||
return (int16_t)tobj_reg.read();
|
return (int16_t)tobj_reg.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -696,9 +705,9 @@ int16_t Adafruit_STHS34PF80::readObjectTemperature() {
|
||||||
* @return Ambient temperature in degrees Celsius
|
* @return Ambient temperature in degrees Celsius
|
||||||
*/
|
*/
|
||||||
float Adafruit_STHS34PF80::readAmbientTemperature() {
|
float Adafruit_STHS34PF80::readAmbientTemperature() {
|
||||||
Adafruit_BusIO_Register tamb_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register tamb_reg =
|
||||||
i2c_dev, STHS34PF80_REG_TAMBIENT_L, 2, LSBFIRST);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_TAMBIENT_L, 2, LSBFIRST);
|
||||||
|
|
||||||
int16_t raw_temp = (int16_t)tamb_reg.read();
|
int16_t raw_temp = (int16_t)tamb_reg.read();
|
||||||
return raw_temp / 100.0f;
|
return raw_temp / 100.0f;
|
||||||
}
|
}
|
||||||
|
|
@ -708,9 +717,9 @@ float Adafruit_STHS34PF80::readAmbientTemperature() {
|
||||||
* @return 16-bit signed compensated object temperature value
|
* @return 16-bit signed compensated object temperature value
|
||||||
*/
|
*/
|
||||||
int16_t Adafruit_STHS34PF80::readCompensatedObjectTemperature() {
|
int16_t Adafruit_STHS34PF80::readCompensatedObjectTemperature() {
|
||||||
Adafruit_BusIO_Register tobj_comp_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register tobj_comp_reg =
|
||||||
i2c_dev, STHS34PF80_REG_TOBJ_COMP_L, 2, LSBFIRST);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_TOBJ_COMP_L, 2, LSBFIRST);
|
||||||
|
|
||||||
return (int16_t)tobj_comp_reg.read();
|
return (int16_t)tobj_comp_reg.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -719,9 +728,9 @@ int16_t Adafruit_STHS34PF80::readCompensatedObjectTemperature() {
|
||||||
* @return 16-bit signed presence detection value
|
* @return 16-bit signed presence detection value
|
||||||
*/
|
*/
|
||||||
int16_t Adafruit_STHS34PF80::readPresence() {
|
int16_t Adafruit_STHS34PF80::readPresence() {
|
||||||
Adafruit_BusIO_Register tpres_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register tpres_reg =
|
||||||
i2c_dev, STHS34PF80_REG_TPRESENCE_L, 2, LSBFIRST);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_TPRESENCE_L, 2, LSBFIRST);
|
||||||
|
|
||||||
return (int16_t)tpres_reg.read();
|
return (int16_t)tpres_reg.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -730,9 +739,9 @@ int16_t Adafruit_STHS34PF80::readPresence() {
|
||||||
* @return 16-bit signed motion detection value
|
* @return 16-bit signed motion detection value
|
||||||
*/
|
*/
|
||||||
int16_t Adafruit_STHS34PF80::readMotion() {
|
int16_t Adafruit_STHS34PF80::readMotion() {
|
||||||
Adafruit_BusIO_Register tmot_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register tmot_reg =
|
||||||
i2c_dev, STHS34PF80_REG_TMOTION_L, 2, LSBFIRST);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_TMOTION_L, 2, LSBFIRST);
|
||||||
|
|
||||||
return (int16_t)tmot_reg.read();
|
return (int16_t)tmot_reg.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -743,7 +752,7 @@ int16_t Adafruit_STHS34PF80::readMotion() {
|
||||||
int16_t Adafruit_STHS34PF80::readTempShock() {
|
int16_t Adafruit_STHS34PF80::readTempShock() {
|
||||||
Adafruit_BusIO_Register tamb_shock_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register tamb_shock_reg = Adafruit_BusIO_Register(
|
||||||
i2c_dev, STHS34PF80_REG_TAMB_SHOCK_L, 2, LSBFIRST);
|
i2c_dev, STHS34PF80_REG_TAMB_SHOCK_L, 2, LSBFIRST);
|
||||||
|
|
||||||
return (int16_t)tamb_shock_reg.read();
|
return (int16_t)tamb_shock_reg.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -755,7 +764,8 @@ int16_t Adafruit_STHS34PF80::readTempShock() {
|
||||||
* @param len Number of bytes to write
|
* @param len Number of bytes to write
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::writeEmbeddedFunction(uint8_t addr, uint8_t *data, uint8_t len) {
|
bool Adafruit_STHS34PF80::writeEmbeddedFunction(uint8_t addr, uint8_t* data,
|
||||||
|
uint8_t len) {
|
||||||
// sths34pf80_ctrl1_t ctrl1;
|
// sths34pf80_ctrl1_t ctrl1;
|
||||||
// uint8_t odr;
|
// uint8_t odr;
|
||||||
// sths34pf80_page_rw_t page_rw = {0};
|
// sths34pf80_page_rw_t page_rw = {0};
|
||||||
|
|
@ -782,11 +792,12 @@ bool Adafruit_STHS34PF80::writeEmbeddedFunction(uint8_t addr, uint8_t *data, uin
|
||||||
|
|
||||||
// /* Enable write mode */
|
// /* Enable write mode */
|
||||||
// page_rw.func_cfg_write = 1;
|
// page_rw.func_cfg_write = 1;
|
||||||
// ret += sths34pf80_write_reg(ctx, STHS34PF80_PAGE_RW, (uint8_t *)&page_rw, 1);
|
// ret += sths34pf80_write_reg(ctx, STHS34PF80_PAGE_RW, (uint8_t *)&page_rw,
|
||||||
Adafruit_BusIO_Register page_rw_reg = Adafruit_BusIO_Register(
|
// 1);
|
||||||
i2c_dev, STHS34PF80_REG_PAGE_RW, 1);
|
Adafruit_BusIO_Register page_rw_reg =
|
||||||
Adafruit_BusIO_RegisterBits func_cfg_write_bit = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_PAGE_RW, 1);
|
||||||
&page_rw_reg, 1, 6);
|
Adafruit_BusIO_RegisterBits func_cfg_write_bit =
|
||||||
|
Adafruit_BusIO_RegisterBits(&page_rw_reg, 1, 6);
|
||||||
if (!func_cfg_write_bit.write(1)) {
|
if (!func_cfg_write_bit.write(1)) {
|
||||||
enableEmbeddedFuncPage(false);
|
enableEmbeddedFuncPage(false);
|
||||||
safeSetOutputDataRate(STHS34PF80_ODR_POWER_DOWN, current_odr);
|
safeSetOutputDataRate(STHS34PF80_ODR_POWER_DOWN, current_odr);
|
||||||
|
|
@ -795,8 +806,8 @@ bool Adafruit_STHS34PF80::writeEmbeddedFunction(uint8_t addr, uint8_t *data, uin
|
||||||
|
|
||||||
// /* Select register address (it will autoincrement after each write) */
|
// /* Select register address (it will autoincrement after each write) */
|
||||||
// ret += sths34pf80_write_reg(ctx, STHS34PF80_FUNC_CFG_ADDR, &addr, 1);
|
// ret += sths34pf80_write_reg(ctx, STHS34PF80_FUNC_CFG_ADDR, &addr, 1);
|
||||||
Adafruit_BusIO_Register func_cfg_addr_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register func_cfg_addr_reg =
|
||||||
i2c_dev, STHS34PF80_REG_FUNC_CFG_ADDR, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_FUNC_CFG_ADDR, 1);
|
||||||
if (!func_cfg_addr_reg.write(addr)) {
|
if (!func_cfg_addr_reg.write(addr)) {
|
||||||
func_cfg_write_bit.write(0);
|
func_cfg_write_bit.write(0);
|
||||||
enableEmbeddedFuncPage(false);
|
enableEmbeddedFuncPage(false);
|
||||||
|
|
@ -808,8 +819,8 @@ bool Adafruit_STHS34PF80::writeEmbeddedFunction(uint8_t addr, uint8_t *data, uin
|
||||||
// for (i = 0; i < len; i++) {
|
// for (i = 0; i < len; i++) {
|
||||||
// ret += sths34pf80_write_reg(ctx, STHS34PF80_FUNC_CFG_DATA, &data[i], 1);
|
// ret += sths34pf80_write_reg(ctx, STHS34PF80_FUNC_CFG_DATA, &data[i], 1);
|
||||||
// }
|
// }
|
||||||
Adafruit_BusIO_Register func_cfg_data_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register func_cfg_data_reg =
|
||||||
i2c_dev, STHS34PF80_REG_FUNC_CFG_DATA, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_FUNC_CFG_DATA, 1);
|
||||||
for (uint8_t i = 0; i < len; i++) {
|
for (uint8_t i = 0; i < len; i++) {
|
||||||
if (!func_cfg_data_reg.write(data[i])) {
|
if (!func_cfg_data_reg.write(data[i])) {
|
||||||
func_cfg_write_bit.write(0);
|
func_cfg_write_bit.write(0);
|
||||||
|
|
@ -821,7 +832,8 @@ bool Adafruit_STHS34PF80::writeEmbeddedFunction(uint8_t addr, uint8_t *data, uin
|
||||||
|
|
||||||
// /* Disable write mode */
|
// /* Disable write mode */
|
||||||
// page_rw.func_cfg_write = 0;
|
// page_rw.func_cfg_write = 0;
|
||||||
// ret += sths34pf80_write_reg(ctx, STHS34PF80_PAGE_RW, (uint8_t *)&page_rw, 1);
|
// ret += sths34pf80_write_reg(ctx, STHS34PF80_PAGE_RW, (uint8_t *)&page_rw,
|
||||||
|
// 1);
|
||||||
if (!func_cfg_write_bit.write(0)) {
|
if (!func_cfg_write_bit.write(0)) {
|
||||||
enableEmbeddedFuncPage(false);
|
enableEmbeddedFuncPage(false);
|
||||||
safeSetOutputDataRate(STHS34PF80_ODR_POWER_DOWN, current_odr);
|
safeSetOutputDataRate(STHS34PF80_ODR_POWER_DOWN, current_odr);
|
||||||
|
|
@ -864,20 +876,21 @@ bool Adafruit_STHS34PF80::algorithmReset() {
|
||||||
* @param new_odr The new output data rate to set
|
* @param new_odr The new output data rate to set
|
||||||
* @return True if successful, false otherwise
|
* @return True if successful, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Adafruit_STHS34PF80::safeSetOutputDataRate(sths34pf80_odr_t current_odr, sths34pf80_odr_t new_odr) {
|
bool Adafruit_STHS34PF80::safeSetOutputDataRate(sths34pf80_odr_t current_odr,
|
||||||
|
sths34pf80_odr_t new_odr) {
|
||||||
// sths34pf80_func_status_t func_status;
|
// sths34pf80_func_status_t func_status;
|
||||||
// sths34pf80_tmos_drdy_status_t status;
|
// sths34pf80_tmos_drdy_status_t status;
|
||||||
// int32_t ret = 0;
|
// int32_t ret = 0;
|
||||||
if (!i2c_dev) {
|
if (!i2c_dev) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Adafruit_BusIO_Register ctrl1_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register ctrl1_reg =
|
||||||
i2c_dev, STHS34PF80_REG_CTRL1, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_CTRL1, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits odr_bits = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits odr_bits =
|
||||||
&ctrl1_reg, 4, 0);
|
Adafruit_BusIO_RegisterBits(&ctrl1_reg, 4, 0);
|
||||||
|
|
||||||
// if (odr_new > 0U) {
|
// if (odr_new > 0U) {
|
||||||
if (new_odr > STHS34PF80_ODR_POWER_DOWN) {
|
if (new_odr > STHS34PF80_ODR_POWER_DOWN) {
|
||||||
/*
|
/*
|
||||||
|
|
@ -894,7 +907,7 @@ bool Adafruit_STHS34PF80::safeSetOutputDataRate(sths34pf80_odr_t current_odr, st
|
||||||
if (!algorithmReset()) {
|
if (!algorithmReset()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
/* if we need to go to power-down from an operative state
|
/* if we need to go to power-down from an operative state
|
||||||
* perform the safe power-down.
|
* perform the safe power-down.
|
||||||
|
|
@ -902,21 +915,22 @@ bool Adafruit_STHS34PF80::safeSetOutputDataRate(sths34pf80_odr_t current_odr, st
|
||||||
// if ((uint8_t)ctrl1.odr > 0U) {
|
// if ((uint8_t)ctrl1.odr > 0U) {
|
||||||
if (current_odr > STHS34PF80_ODR_POWER_DOWN) {
|
if (current_odr > STHS34PF80_ODR_POWER_DOWN) {
|
||||||
/* reset the DRDY bit */
|
/* reset the DRDY bit */
|
||||||
// ret = sths34pf80_read_reg(ctx, STHS34PF80_FUNC_STATUS, (uint8_t *)&func_status, 1);
|
// ret = sths34pf80_read_reg(ctx, STHS34PF80_FUNC_STATUS, (uint8_t
|
||||||
Adafruit_BusIO_Register func_status_reg = Adafruit_BusIO_Register(
|
// *)&func_status, 1);
|
||||||
i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1);
|
Adafruit_BusIO_Register func_status_reg =
|
||||||
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_FUNC_STATUS, 1);
|
||||||
func_status_reg.read(); // Reading clears the DRDY bit
|
func_status_reg.read(); // Reading clears the DRDY bit
|
||||||
|
|
||||||
/* wait DRDY bit go to '1' */
|
/* wait DRDY bit go to '1' */
|
||||||
// do {
|
// do {
|
||||||
// ret += sths34pf80_tmos_drdy_status_get(ctx, &status);
|
// ret += sths34pf80_tmos_drdy_status_get(ctx, &status);
|
||||||
// } while (status.drdy != 0U);
|
// } while (status.drdy != 0U);
|
||||||
Adafruit_BusIO_Register status_reg = Adafruit_BusIO_Register(
|
Adafruit_BusIO_Register status_reg =
|
||||||
i2c_dev, STHS34PF80_REG_STATUS, 1);
|
Adafruit_BusIO_Register(i2c_dev, STHS34PF80_REG_STATUS, 1);
|
||||||
|
|
||||||
Adafruit_BusIO_RegisterBits drdy_bit = Adafruit_BusIO_RegisterBits(
|
Adafruit_BusIO_RegisterBits drdy_bit =
|
||||||
&status_reg, 1, 2);
|
Adafruit_BusIO_RegisterBits(&status_reg, 1, 2);
|
||||||
|
|
||||||
uint32_t timeout = 1000; // 1 second timeout
|
uint32_t timeout = 1000; // 1 second timeout
|
||||||
while (timeout-- > 0) {
|
while (timeout-- > 0) {
|
||||||
if (drdy_bit.read() == 1) {
|
if (drdy_bit.read() == 1) {
|
||||||
|
|
@ -924,24 +938,26 @@ bool Adafruit_STHS34PF80::safeSetOutputDataRate(sths34pf80_odr_t current_odr, st
|
||||||
}
|
}
|
||||||
delay(1);
|
delay(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (timeout == 0) {
|
if (timeout == 0) {
|
||||||
return false; // Timeout waiting for DRDY
|
return false; // Timeout waiting for DRDY
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set ODR to 0 */
|
/* set ODR to 0 */
|
||||||
// ctrl1.odr = 0;
|
// ctrl1.odr = 0;
|
||||||
// ret += sths34pf80_write_reg(ctx, STHS34PF80_CTRL1, (uint8_t *)&ctrl1, 1);
|
// ret += sths34pf80_write_reg(ctx, STHS34PF80_CTRL1, (uint8_t *)&ctrl1,
|
||||||
|
// 1);
|
||||||
if (!odr_bits.write(STHS34PF80_ODR_POWER_DOWN)) {
|
if (!odr_bits.write(STHS34PF80_ODR_POWER_DOWN)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* reset the DRDY bit */
|
/* reset the DRDY bit */
|
||||||
// ret += sths34pf80_read_reg(ctx, STHS34PF80_FUNC_STATUS, (uint8_t *)&func_status, 1);
|
// ret += sths34pf80_read_reg(ctx, STHS34PF80_FUNC_STATUS, (uint8_t
|
||||||
|
// *)&func_status, 1);
|
||||||
func_status_reg.read(); // Reading clears the DRDY bit again
|
func_status_reg.read(); // Reading clears the DRDY bit again
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Final ODR set (implied from original function usage context)
|
// Final ODR set (implied from original function usage context)
|
||||||
return odr_bits.write(new_odr);
|
return odr_bits.write(new_odr);
|
||||||
}
|
}
|
||||||
|
|
@ -21,45 +21,55 @@
|
||||||
#ifndef __ADAFRUIT_STHS34PF80_H__
|
#ifndef __ADAFRUIT_STHS34PF80_H__
|
||||||
#define __ADAFRUIT_STHS34PF80_H__
|
#define __ADAFRUIT_STHS34PF80_H__
|
||||||
|
|
||||||
#include "Arduino.h"
|
|
||||||
#include <Adafruit_BusIO_Register.h>
|
#include <Adafruit_BusIO_Register.h>
|
||||||
#include <Adafruit_I2CDevice.h>
|
#include <Adafruit_I2CDevice.h>
|
||||||
#include <Wire.h>
|
#include <Wire.h>
|
||||||
|
|
||||||
|
#include "Arduino.h"
|
||||||
|
|
||||||
#define STHS34PF80_DEFAULT_ADDR 0x5A ///< Default I2C address for the STHS34PF80
|
#define STHS34PF80_DEFAULT_ADDR 0x5A ///< Default I2C address for the STHS34PF80
|
||||||
|
|
||||||
#define STHS34PF80_REG_LPF1 0x0C ///< Low-pass filter configuration 1 register
|
#define STHS34PF80_REG_LPF1 0x0C ///< Low-pass filter configuration 1 register
|
||||||
#define STHS34PF80_REG_LPF2 0x0D ///< Low-pass filter configuration 2 register
|
#define STHS34PF80_REG_LPF2 0x0D ///< Low-pass filter configuration 2 register
|
||||||
#define STHS34PF80_REG_WHO_AM_I 0x0F ///< Device identification register
|
#define STHS34PF80_REG_WHO_AM_I 0x0F ///< Device identification register
|
||||||
#define STHS34PF80_REG_AVG_TRIM 0x10 ///< Averaging configuration register
|
#define STHS34PF80_REG_AVG_TRIM 0x10 ///< Averaging configuration register
|
||||||
#define STHS34PF80_REG_CTRL0 0x17 ///< Control register 0 (gain mode)
|
#define STHS34PF80_REG_CTRL0 0x17 ///< Control register 0 (gain mode)
|
||||||
#define STHS34PF80_REG_SENS_DATA 0x1D ///< Sensitivity data register
|
#define STHS34PF80_REG_SENS_DATA 0x1D ///< Sensitivity data register
|
||||||
#define STHS34PF80_REG_CTRL1 0x20 ///< Control register 1 (ODR configuration)
|
#define STHS34PF80_REG_CTRL1 0x20 ///< Control register 1 (ODR configuration)
|
||||||
#define STHS34PF80_REG_CTRL2 0x21 ///< Control register 2 (boot, function access, one-shot)
|
#define STHS34PF80_REG_CTRL2 \
|
||||||
#define STHS34PF80_REG_CTRL3 0x22 ///< Control register 3 (interrupt configuration)
|
0x21 ///< Control register 2 (boot, function access, one-shot)
|
||||||
#define STHS34PF80_REG_STATUS 0x23 ///< Status register
|
#define STHS34PF80_REG_CTRL3 \
|
||||||
|
0x22 ///< Control register 3 (interrupt configuration)
|
||||||
|
#define STHS34PF80_REG_STATUS 0x23 ///< Status register
|
||||||
#define STHS34PF80_REG_FUNC_STATUS 0x25 ///< Function status register
|
#define STHS34PF80_REG_FUNC_STATUS 0x25 ///< Function status register
|
||||||
#define STHS34PF80_REG_TOBJECT_L 0x26 ///< Object temperature LSB register
|
#define STHS34PF80_REG_TOBJECT_L 0x26 ///< Object temperature LSB register
|
||||||
#define STHS34PF80_REG_TOBJECT_H 0x27 ///< Object temperature MSB register
|
#define STHS34PF80_REG_TOBJECT_H 0x27 ///< Object temperature MSB register
|
||||||
#define STHS34PF80_REG_TAMBIENT_L 0x28 ///< Ambient temperature LSB register
|
#define STHS34PF80_REG_TAMBIENT_L 0x28 ///< Ambient temperature LSB register
|
||||||
#define STHS34PF80_REG_TAMBIENT_H 0x29 ///< Ambient temperature MSB register
|
#define STHS34PF80_REG_TAMBIENT_H 0x29 ///< Ambient temperature MSB register
|
||||||
#define STHS34PF80_REG_TOBJ_COMP_L 0x38 ///< Compensated object temperature LSB register
|
#define STHS34PF80_REG_TOBJ_COMP_L \
|
||||||
#define STHS34PF80_REG_TOBJ_COMP_H 0x39 ///< Compensated object temperature MSB register
|
0x38 ///< Compensated object temperature LSB register
|
||||||
|
#define STHS34PF80_REG_TOBJ_COMP_H \
|
||||||
|
0x39 ///< Compensated object temperature MSB register
|
||||||
#define STHS34PF80_REG_TPRESENCE_L 0x3A ///< Presence detection LSB register
|
#define STHS34PF80_REG_TPRESENCE_L 0x3A ///< Presence detection LSB register
|
||||||
#define STHS34PF80_REG_TPRESENCE_H 0x3B ///< Presence detection MSB register
|
#define STHS34PF80_REG_TPRESENCE_H 0x3B ///< Presence detection MSB register
|
||||||
#define STHS34PF80_REG_TMOTION_L 0x3C ///< Motion detection LSB register
|
#define STHS34PF80_REG_TMOTION_L 0x3C ///< Motion detection LSB register
|
||||||
#define STHS34PF80_REG_TMOTION_H 0x3D ///< Motion detection MSB register
|
#define STHS34PF80_REG_TMOTION_H 0x3D ///< Motion detection MSB register
|
||||||
#define STHS34PF80_REG_TAMB_SHOCK_L 0x3E ///< Ambient shock detection LSB register
|
#define STHS34PF80_REG_TAMB_SHOCK_L \
|
||||||
#define STHS34PF80_REG_TAMB_SHOCK_H 0x3F ///< Ambient shock detection MSB register
|
0x3E ///< Ambient shock detection LSB register
|
||||||
|
#define STHS34PF80_REG_TAMB_SHOCK_H \
|
||||||
|
0x3F ///< Ambient shock detection MSB register
|
||||||
|
|
||||||
#define STHS34PF80_REG_FUNC_CFG_ADDR 0x08 ///< Embedded function configuration address register
|
#define STHS34PF80_REG_FUNC_CFG_ADDR \
|
||||||
#define STHS34PF80_REG_FUNC_CFG_DATA 0x09 ///< Embedded function configuration data register
|
0x08 ///< Embedded function configuration address register
|
||||||
#define STHS34PF80_REG_PAGE_RW 0x11 ///< Page read/write control register
|
#define STHS34PF80_REG_FUNC_CFG_DATA \
|
||||||
|
0x09 ///< Embedded function configuration data register
|
||||||
|
#define STHS34PF80_REG_PAGE_RW 0x11 ///< Page read/write control register
|
||||||
|
|
||||||
#define STHS34PF80_EMBEDDED_RESET_ALGO 0x2A ///< Embedded function RESET_ALGO register address
|
#define STHS34PF80_EMBEDDED_RESET_ALGO \
|
||||||
|
0x2A ///< Embedded function RESET_ALGO register address
|
||||||
|
|
||||||
#define STHS34PF80_PRES_FLAG 0x04 ///< Presence detection flag
|
#define STHS34PF80_PRES_FLAG 0x04 ///< Presence detection flag
|
||||||
#define STHS34PF80_MOT_FLAG 0x02 ///< Motion detection flag
|
#define STHS34PF80_MOT_FLAG 0x02 ///< Motion detection flag
|
||||||
#define STHS34PF80_TAMB_SHOCK_FLAG 0x01 ///< Ambient temperature shock flag
|
#define STHS34PF80_TAMB_SHOCK_FLAG 0x01 ///< Ambient temperature shock flag
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
@ -79,10 +89,10 @@ typedef enum {
|
||||||
* @brief Ambient temperature averaging options
|
* @brief Ambient temperature averaging options
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
STHS34PF80_AVG_T_8 = 0x00, ///< 8 samples (default)
|
STHS34PF80_AVG_T_8 = 0x00, ///< 8 samples (default)
|
||||||
STHS34PF80_AVG_T_4 = 0x01, ///< 4 samples
|
STHS34PF80_AVG_T_4 = 0x01, ///< 4 samples
|
||||||
STHS34PF80_AVG_T_2 = 0x02, ///< 2 samples
|
STHS34PF80_AVG_T_2 = 0x02, ///< 2 samples
|
||||||
STHS34PF80_AVG_T_1 = 0x03, ///< 1 sample
|
STHS34PF80_AVG_T_1 = 0x03, ///< 1 sample
|
||||||
} sths34pf80_avg_t_t;
|
} sths34pf80_avg_t_t;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
@ -118,20 +128,21 @@ typedef enum {
|
||||||
* @brief Interrupt enable signal options
|
* @brief Interrupt enable signal options
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
STHS34PF80_INT_HIGH_Z = 0x00, ///< High-Z (disabled)
|
STHS34PF80_INT_HIGH_Z = 0x00, ///< High-Z (disabled)
|
||||||
STHS34PF80_INT_DRDY = 0x01, ///< Data ready
|
STHS34PF80_INT_DRDY = 0x01, ///< Data ready
|
||||||
STHS34PF80_INT_OR = 0x02, ///< INT_OR (function flags)
|
STHS34PF80_INT_OR = 0x02, ///< INT_OR (function flags)
|
||||||
} sths34pf80_int_signal_t;
|
} sths34pf80_int_signal_t;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Class that stores state and functions for interacting with the STHS34PF80
|
* @brief Class that stores state and functions for interacting with the
|
||||||
|
* STHS34PF80
|
||||||
*/
|
*/
|
||||||
class Adafruit_STHS34PF80 {
|
class Adafruit_STHS34PF80 {
|
||||||
public:
|
public:
|
||||||
Adafruit_STHS34PF80();
|
Adafruit_STHS34PF80();
|
||||||
~Adafruit_STHS34PF80();
|
~Adafruit_STHS34PF80();
|
||||||
|
|
||||||
bool begin(uint8_t i2c_addr = STHS34PF80_DEFAULT_ADDR, TwoWire *wire = &Wire);
|
bool begin(uint8_t i2c_addr = STHS34PF80_DEFAULT_ADDR, TwoWire* wire = &Wire);
|
||||||
bool isConnected();
|
bool isConnected();
|
||||||
bool reset();
|
bool reset();
|
||||||
|
|
||||||
|
|
@ -163,8 +174,8 @@ public:
|
||||||
bool rebootOTPmemory();
|
bool rebootOTPmemory();
|
||||||
bool enableEmbeddedFuncPage(bool enable);
|
bool enableEmbeddedFuncPage(bool enable);
|
||||||
bool triggerOneshot();
|
bool triggerOneshot();
|
||||||
|
|
||||||
bool writeEmbeddedFunction(uint8_t addr, uint8_t *data, uint8_t len);
|
bool writeEmbeddedFunction(uint8_t addr, uint8_t* data, uint8_t len);
|
||||||
|
|
||||||
bool setIntPolarity(bool active_low);
|
bool setIntPolarity(bool active_low);
|
||||||
bool setIntOpenDrain(bool open_drain);
|
bool setIntOpenDrain(bool open_drain);
|
||||||
|
|
@ -186,9 +197,10 @@ public:
|
||||||
int16_t readMotion();
|
int16_t readMotion();
|
||||||
int16_t readTempShock();
|
int16_t readTempShock();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Adafruit_I2CDevice *i2c_dev;
|
Adafruit_I2CDevice* i2c_dev;
|
||||||
bool safeSetOutputDataRate(sths34pf80_odr_t current_odr, sths34pf80_odr_t new_odr);
|
bool safeSetOutputDataRate(sths34pf80_odr_t current_odr,
|
||||||
|
sths34pf80_odr_t new_odr);
|
||||||
bool algorithmReset(); // TODO: Implement algorithm reset procedure
|
bool algorithmReset(); // TODO: Implement algorithm reset procedure
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue