Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: X_NUCLEO_COMMON ST_INTERFACES
Dependents: X_NUCLEO_IKS01A3 X_NUCLEO_IKS01A3 X_NUCLEO_IKS01A3
Revision 1:5859badee052, committed 2019-07-24
- Comitter:
- cparata
- Date:
- Wed Jul 24 14:20:10 2019 +0000
- Parent:
- 0:128dae13c732
- Child:
- 2:2ea2e88ce467
- Commit message:
- Format with Astyle
Changed in this revision
--- a/STTS751Sensor.cpp Wed Mar 06 10:18:41 2019 +0000
+++ b/STTS751Sensor.cpp Wed Jul 24 14:20:10 2019 +0000
@@ -4,7 +4,7 @@
* @author SRA
* @version V1.0.0
* @date February 2019
- * @brief Implementation of a STTS751 temperature sensor.
+ * @brief Implementation of a STTS751 temperature sensor.
******************************************************************************
* @attention
*
@@ -50,10 +50,10 @@
*/
STTS751Sensor::STTS751Sensor(DevI2C *i2c, uint8_t address, PinName int_pin) : _dev_i2c(i2c), _address(address), _int_irq(int_pin)
{
- assert (i2c);
- _reg_ctx.write_reg = STTS751_io_write;
- _reg_ctx.read_reg = STTS751_io_read;
- _reg_ctx.handle = (void *)this;
+ assert(i2c);
+ _reg_ctx.write_reg = STTS751_io_write;
+ _reg_ctx.read_reg = STTS751_io_read;
+ _reg_ctx.handle = (void *)this;
}
/**
@@ -63,30 +63,27 @@
*/
int STTS751Sensor::init(void *init)
{
- /* Disable EVENT pin of SMBus. */
- if (stts751_pin_event_route_set(&_reg_ctx, PROPERTY_ENABLE) != 0)
- {
- return 1;
- }
+ /* Disable EVENT pin of SMBus. */
+ if (stts751_pin_event_route_set(&_reg_ctx, PROPERTY_ENABLE) != 0) {
+ return 1;
+ }
- /* Set default ODR */
- _last_odr = 1.0f;
+ /* Set default ODR */
+ _last_odr = 1.0f;
- /* Set the resolution to the maximum allowed value */
- if (stts751_resolution_set(&_reg_ctx, STTS751_12bit) != 0)
- {
- return 1;
- }
+ /* Set the resolution to the maximum allowed value */
+ if (stts751_resolution_set(&_reg_ctx, STTS751_12bit) != 0) {
+ return 1;
+ }
- /* Put the component in standby mode. */
- if (stts751_temp_data_rate_set(&_reg_ctx, STTS751_TEMP_ODR_OFF) != 0)
- {
- return 1;
- }
-
- _is_enabled = 0;
-
- return 0;
+ /* Put the component in standby mode. */
+ if (stts751_temp_data_rate_set(&_reg_ctx, STTS751_TEMP_ODR_OFF) != 0) {
+ return 1;
+ }
+
+ _is_enabled = 0;
+
+ return 0;
}
/**
@@ -96,16 +93,15 @@
*/
int STTS751Sensor::read_id(uint8_t *id)
{
- stts751_id_t buf;
+ stts751_id_t buf;
- if (stts751_device_id_get(&_reg_ctx, &buf) != 0)
- {
- return 1;
- }
+ if (stts751_device_id_get(&_reg_ctx, &buf) != 0) {
+ return 1;
+ }
- *id = buf.manufacturer_id;
+ *id = buf.manufacturer_id;
- return 0;
+ return 0;
}
/**
@@ -114,21 +110,19 @@
*/
int STTS751Sensor::enable()
{
- /* Check if the component is already enabled */
- if (_is_enabled == 1U)
- {
- return 0;
- }
+ /* Check if the component is already enabled */
+ if (_is_enabled == 1U) {
+ return 0;
+ }
- /* Power on the component and set the odr. */
- if (set_odr(_last_odr) != 0)
- {
- return 1;
- }
+ /* Power on the component and set the odr. */
+ if (set_odr(_last_odr) != 0) {
+ return 1;
+ }
- _is_enabled = 1;
+ _is_enabled = 1;
- return 0;
+ return 0;
}
/**
@@ -137,27 +131,24 @@
*/
int STTS751Sensor::disable()
{
- /* Check if the component is already disabled */
- if (_is_enabled == 0U)
- {
- return 0;
- }
+ /* Check if the component is already disabled */
+ if (_is_enabled == 0U) {
+ return 0;
+ }
- /* Save the current odr. */
- if (get_odr(&_last_odr) != 0)
- {
- return 1;
- }
-
- /* Put the component in standby mode. */
- if (stts751_temp_data_rate_set(&_reg_ctx, STTS751_TEMP_ODR_OFF) != 0)
- {
- return 1;
- }
+ /* Save the current odr. */
+ if (get_odr(&_last_odr) != 0) {
+ return 1;
+ }
- _is_enabled = 0;
+ /* Put the component in standby mode. */
+ if (stts751_temp_data_rate_set(&_reg_ctx, STTS751_TEMP_ODR_OFF) != 0) {
+ return 1;
+ }
- return 0;
+ _is_enabled = 0;
+
+ return 0;
}
/**
@@ -167,67 +158,65 @@
*/
int STTS751Sensor::get_odr(float *odr)
{
- int ret = 0;
- stts751_odr_t odr_low_level;
+ int ret = 0;
+ stts751_odr_t odr_low_level;
- if (stts751_temp_data_rate_get(&_reg_ctx, &odr_low_level) != 0)
- {
- return 1;
- }
+ if (stts751_temp_data_rate_get(&_reg_ctx, &odr_low_level) != 0) {
+ return 1;
+ }
- switch (odr_low_level)
- {
- case STTS751_TEMP_ODR_OFF:
- case STTS751_TEMP_ODR_ONE_SHOT:
- *odr = 0.0f;
- break;
+ switch (odr_low_level) {
+ case STTS751_TEMP_ODR_OFF:
+ case STTS751_TEMP_ODR_ONE_SHOT:
+ *odr = 0.0f;
+ break;
- case STTS751_TEMP_ODR_62mHz5:
- *odr = 0.0625f;
- break;
+ case STTS751_TEMP_ODR_62mHz5:
+ *odr = 0.0625f;
+ break;
- case STTS751_TEMP_ODR_125mHz:
- *odr = 0.125f;
- break;
+ case STTS751_TEMP_ODR_125mHz:
+ *odr = 0.125f;
+ break;
- case STTS751_TEMP_ODR_250mHz:
- *odr = 0.250f;
- break;
+ case STTS751_TEMP_ODR_250mHz:
+ *odr = 0.250f;
+ break;
- case STTS751_TEMP_ODR_500mHz:
- *odr = 0.500f;
- break;
+ case STTS751_TEMP_ODR_500mHz:
+ *odr = 0.500f;
+ break;
- case STTS751_TEMP_ODR_1Hz:
- *odr = 1.0f;
- break;
+ case STTS751_TEMP_ODR_1Hz:
+ *odr = 1.0f;
+ break;
- case STTS751_TEMP_ODR_2Hz:
- *odr = 2.0f;
- break;
+ case STTS751_TEMP_ODR_2Hz:
+ *odr = 2.0f;
+ break;
- case STTS751_TEMP_ODR_4Hz:
- *odr = 4.0f;
- break;
+ case STTS751_TEMP_ODR_4Hz:
+ *odr = 4.0f;
+ break;
- case STTS751_TEMP_ODR_8Hz:
- *odr = 8.0f;
- break;
+ case STTS751_TEMP_ODR_8Hz:
+ *odr = 8.0f;
+ break;
- case STTS751_TEMP_ODR_16Hz:
- *odr = 16.0f;
- break;
+ case STTS751_TEMP_ODR_16Hz:
+ *odr = 16.0f;
+ break;
- case STTS751_TEMP_ODR_32Hz:
- *odr = 32.0f;
- break;
+ case STTS751_TEMP_ODR_32Hz:
+ *odr = 32.0f;
+ break;
- default:
- ret = 1;
- break;
- }
+ default:
+ ret = 1;
+ break;
+ }
- return ret;
+ return ret;
}
/**
@@ -237,52 +226,46 @@
*/
int STTS751Sensor::set_odr(float odr)
{
- stts751_odr_t new_odr;
- stts751_tres_t res;
+ stts751_odr_t new_odr;
+ stts751_tres_t res;
- /* Get the current resolution */
- if (stts751_resolution_get(&_reg_ctx, &res) != 0)
- {
- return 1;
- }
+ /* Get the current resolution */
+ if (stts751_resolution_get(&_reg_ctx, &res) != 0) {
+ return 1;
+ }
- /* If the requested odr is 16Hz we cannot use the 12 bits resolution */
- if(odr == 16.0f && res == STTS751_12bit)
- {
- /* We force resolution to the maximum allowed value */
- if (stts751_resolution_set(&_reg_ctx, STTS751_11bit) != 0)
- {
- return 1;
+ /* If the requested odr is 16Hz we cannot use the 12 bits resolution */
+ if (odr == 16.0f && res == STTS751_12bit) {
+ /* We force resolution to the maximum allowed value */
+ if (stts751_resolution_set(&_reg_ctx, STTS751_11bit) != 0) {
+ return 1;
+ }
}
- }
- /* If the requested odr is 32Hz we cannot use the 12 bits and 11 bits resolutions */
- if(odr == 32.0f && (res == STTS751_12bit || res == STTS751_11bit))
- {
- /* We force resolution to the maximum allowed value */
- if (stts751_resolution_set(&_reg_ctx, STTS751_10bit) != 0)
- {
- return 1;
+ /* If the requested odr is 32Hz we cannot use the 12 bits and 11 bits resolutions */
+ if (odr == 32.0f && (res == STTS751_12bit || res == STTS751_11bit)) {
+ /* We force resolution to the maximum allowed value */
+ if (stts751_resolution_set(&_reg_ctx, STTS751_10bit) != 0) {
+ return 1;
+ }
}
- }
- new_odr = (odr <= 0.0625f) ? STTS751_TEMP_ODR_62mHz5
- : (odr <= 0.125f ) ? STTS751_TEMP_ODR_125mHz
- : (odr <= 0.25f ) ? STTS751_TEMP_ODR_250mHz
- : (odr <= 0.5f ) ? STTS751_TEMP_ODR_500mHz
- : (odr <= 1.0f ) ? STTS751_TEMP_ODR_1Hz
- : (odr <= 2.0f ) ? STTS751_TEMP_ODR_2Hz
- : (odr <= 4.0f ) ? STTS751_TEMP_ODR_4Hz
- : (odr <= 8.0f ) ? STTS751_TEMP_ODR_8Hz
- : (odr <= 16.0f ) ? STTS751_TEMP_ODR_16Hz
- : STTS751_TEMP_ODR_32Hz;
+ new_odr = (odr <= 0.0625f) ? STTS751_TEMP_ODR_62mHz5
+ : (odr <= 0.125f) ? STTS751_TEMP_ODR_125mHz
+ : (odr <= 0.25f) ? STTS751_TEMP_ODR_250mHz
+ : (odr <= 0.5f) ? STTS751_TEMP_ODR_500mHz
+ : (odr <= 1.0f) ? STTS751_TEMP_ODR_1Hz
+ : (odr <= 2.0f) ? STTS751_TEMP_ODR_2Hz
+ : (odr <= 4.0f) ? STTS751_TEMP_ODR_4Hz
+ : (odr <= 8.0f) ? STTS751_TEMP_ODR_8Hz
+ : (odr <= 16.0f) ? STTS751_TEMP_ODR_16Hz
+ : STTS751_TEMP_ODR_32Hz;
- if (stts751_temp_data_rate_set(&_reg_ctx, new_odr) != 0)
- {
- return 1;
- }
+ if (stts751_temp_data_rate_set(&_reg_ctx, new_odr) != 0) {
+ return 1;
+ }
- return 0;
+ return 0;
}
/**
@@ -292,17 +275,16 @@
*/
int STTS751Sensor::get_temperature(float *value)
{
- int16_t raw_value = 0;
+ int16_t raw_value = 0;
- /* Get the temperature */
- if (stts751_temperature_raw_get(&_reg_ctx, &raw_value) != 0)
- {
- return 1;
- }
+ /* Get the temperature */
+ if (stts751_temperature_raw_get(&_reg_ctx, &raw_value) != 0) {
+ return 1;
+ }
- *value = stts751_from_lsb_to_celsius(raw_value);
+ *value = stts751_from_lsb_to_celsius(raw_value);
- return 0;
+ return 0;
}
/**
@@ -312,22 +294,19 @@
*/
int STTS751Sensor::get_temp_drdy_status(uint8_t *status)
{
- uint8_t val;
+ uint8_t val;
- if (stts751_flag_busy_get(&_reg_ctx, &val) != 0)
- {
- return 1;
- }
+ if (stts751_flag_busy_get(&_reg_ctx, &val) != 0) {
+ return 1;
+ }
- if(val)
- {
- *status = 0;
- } else
- {
- *status = 1;
- }
+ if (val) {
+ *status = 0;
+ } else {
+ *status = 1;
+ }
- return 0;
+ return 0;
}
/**
@@ -337,17 +316,16 @@
*/
int STTS751Sensor::set_low_temp_thr(float value)
{
- int16_t raw_value;
+ int16_t raw_value;
- raw_value = stts751_from_celsius_to_lsb(value);
+ raw_value = stts751_from_celsius_to_lsb(value);
- /* Set the temperature threshold */
- if (stts751_low_temperature_threshold_set(&_reg_ctx, raw_value) != 0)
- {
- return 1;
- }
+ /* Set the temperature threshold */
+ if (stts751_low_temperature_threshold_set(&_reg_ctx, raw_value) != 0) {
+ return 1;
+ }
- return 0;
+ return 0;
}
/**
@@ -357,17 +335,16 @@
*/
int STTS751Sensor::set_high_temp_thr(float value)
{
- int16_t raw_value;
+ int16_t raw_value;
- raw_value = stts751_from_celsius_to_lsb(value);
+ raw_value = stts751_from_celsius_to_lsb(value);
- /* Set the temperature threshold */
- if (stts751_high_temperature_threshold_set(&_reg_ctx, raw_value) != 0)
- {
- return 1;
- }
+ /* Set the temperature threshold */
+ if (stts751_high_temperature_threshold_set(&_reg_ctx, raw_value) != 0) {
+ return 1;
+ }
- return 0;
+ return 0;
}
/**
@@ -379,19 +356,18 @@
*/
int STTS751Sensor::get_temp_limit_status(uint8_t *high_limit, uint8_t *low_limit, uint8_t *therm_limit)
{
- stts751_status_t status;
+ stts751_status_t status;
- /* Read status register */
- if (stts751_status_reg_get(&_reg_ctx, &status) != 0)
- {
- return 1;
- }
+ /* Read status register */
+ if (stts751_status_reg_get(&_reg_ctx, &status) != 0) {
+ return 1;
+ }
- *high_limit = status.t_high;
- *low_limit = status.t_low;
- *therm_limit = status.thrm;
+ *high_limit = status.t_high;
+ *low_limit = status.t_low;
+ *therm_limit = status.thrm;
- return 0;
+ return 0;
}
/**
@@ -401,17 +377,20 @@
*/
int STTS751Sensor::set_event_pin(uint8_t enable)
{
- uint8_t state;
-
- /* The MASK1 bit in configuration register has inverted logic */
- if (enable == 0) state = PROPERTY_ENABLE; else state = PROPERTY_DISABLE;
+ uint8_t state;
- if (stts751_pin_event_route_set(&_reg_ctx, state) != 0)
- {
- return 1;
- }
+ /* The MASK1 bit in configuration register has inverted logic */
+ if (enable == 0) {
+ state = PROPERTY_ENABLE;
+ } else {
+ state = PROPERTY_DISABLE;
+ }
- return 0;
+ if (stts751_pin_event_route_set(&_reg_ctx, state) != 0) {
+ return 1;
+ }
+
+ return 0;
}
/**
@@ -422,12 +401,11 @@
*/
int STTS751Sensor::read_reg(uint8_t reg, uint8_t *data)
{
- if (stts751_read_reg(&_reg_ctx, reg, data, 1) != 0)
- {
- return 1;
- }
+ if (stts751_read_reg(&_reg_ctx, reg, data, 1) != 0) {
+ return 1;
+ }
- return 0;
+ return 0;
}
/**
@@ -438,12 +416,11 @@
*/
int STTS751Sensor::write_reg(uint8_t reg, uint8_t data)
{
- if (stts751_write_reg(&_reg_ctx, reg, &data, 1) != 0)
- {
- return 1;
- }
+ if (stts751_write_reg(&_reg_ctx, reg, &data, 1) != 0) {
+ return 1;
+ }
- return 0;
+ return 0;
}
/**
@@ -452,13 +429,12 @@
*/
int STTS751Sensor::set_one_shot()
{
- /* Start One Shot Measurement */
- if(stts751_temp_data_rate_set(&_reg_ctx, STTS751_TEMP_ODR_ONE_SHOT) != 0)
- {
- return 1;
- }
+ /* Start One Shot Measurement */
+ if (stts751_temp_data_rate_set(&_reg_ctx, STTS751_TEMP_ODR_ONE_SHOT) != 0) {
+ return 1;
+ }
- return 0;
+ return 0;
}
/**
@@ -468,33 +444,29 @@
*/
int STTS751Sensor::get_one_shot_status(uint8_t *status)
{
- uint8_t busy;
+ uint8_t busy;
- /* Get Busy flag */
- if(stts751_flag_busy_get(&_reg_ctx, &busy) != 0)
- {
- return 1;
- }
+ /* Get Busy flag */
+ if (stts751_flag_busy_get(&_reg_ctx, &busy) != 0) {
+ return 1;
+ }
- if(busy)
- {
- *status = 0;
- }
- else
- {
- *status = 1;
- }
+ if (busy) {
+ *status = 0;
+ } else {
+ *status = 1;
+ }
- return 0;
+ return 0;
}
int32_t STTS751_io_write(void *handle, uint8_t WriteAddr, uint8_t *pBuffer, uint16_t nBytesToWrite)
{
- return ((STTS751Sensor *)handle)->io_write(pBuffer, WriteAddr, nBytesToWrite);
+ return ((STTS751Sensor *)handle)->io_write(pBuffer, WriteAddr, nBytesToWrite);
}
int32_t STTS751_io_read(void *handle, uint8_t ReadAddr, uint8_t *pBuffer, uint16_t nBytesToRead)
{
- return ((STTS751Sensor *)handle)->io_read(pBuffer, ReadAddr, nBytesToRead);
+ return ((STTS751Sensor *)handle)->io_read(pBuffer, ReadAddr, nBytesToRead);
}
--- a/STTS751Sensor.h Wed Mar 06 10:18:41 2019 +0000
+++ b/STTS751Sensor.h Wed Jul 24 14:20:10 2019 +0000
@@ -52,15 +52,14 @@
/* Defines -------------------------------------------------------------------*/
/* Typedefs ------------------------------------------------------------------*/
/* Class Declaration ---------------------------------------------------------*/
-
+
/**
* Abstract class of a STTS751 temperature sensor.
*/
-class STTS751Sensor : public TempSensor
-{
- public:
-
- STTS751Sensor(DevI2C *i2c, uint8_t address=STTS751_0xxxx_ADD_7K5, PinName int_pin=NC);
+class STTS751Sensor : public TempSensor {
+public:
+
+ STTS751Sensor(DevI2C *i2c, uint8_t address = STTS751_0xxxx_ADD_7K5, PinName int_pin = NC);
virtual int init(void *init);
virtual int read_id(uint8_t *id);
virtual int get_temperature(float *value);
@@ -97,7 +96,7 @@
{
_int_irq.enable_irq();
}
-
+
/**
* @brief Disabling the INT interrupt handling.
* @param None.
@@ -116,12 +115,14 @@
* @param NumByteToRead: number of bytes to be read.
* @retval 0 if ok, an error code otherwise.
*/
- uint8_t io_read(uint8_t* pBuffer, uint8_t RegisterAddr, uint16_t NumByteToRead)
- {
- if (_dev_i2c) return (uint8_t) _dev_i2c->i2c_read(pBuffer, _address, RegisterAddr, NumByteToRead);
+ uint8_t io_read(uint8_t *pBuffer, uint8_t RegisterAddr, uint16_t NumByteToRead)
+ {
+ if (_dev_i2c) {
+ return (uint8_t) _dev_i2c->i2c_read(pBuffer, _address, RegisterAddr, NumByteToRead);
+ }
return 1;
}
-
+
/**
* @brief Utility function to write data.
* @param pBuffer: pointer to data to be written.
@@ -129,34 +130,36 @@
* @param NumByteToWrite: number of bytes to write.
* @retval 0 if ok, an error code otherwise.
*/
- uint8_t io_write(uint8_t* pBuffer, uint8_t RegisterAddr, uint16_t NumByteToWrite)
+ uint8_t io_write(uint8_t *pBuffer, uint8_t RegisterAddr, uint16_t NumByteToWrite)
{
- if (_dev_i2c) return (uint8_t) _dev_i2c->i2c_write(pBuffer, _address, RegisterAddr, NumByteToWrite);
+ if (_dev_i2c) {
+ return (uint8_t) _dev_i2c->i2c_write(pBuffer, _address, RegisterAddr, NumByteToWrite);
+ }
return 1;
}
- private:
+private:
/* Helper classes. */
DevI2C *_dev_i2c;
-
+
/* Configuration */
uint8_t _address;
- InterruptIn _int_irq;
-
+ InterruptIn _int_irq;
+
uint8_t _is_enabled;
float _last_odr;
-
+
stts751_ctx_t _reg_ctx;
};
#ifdef __cplusplus
- extern "C" {
+extern "C" {
#endif
-int32_t STTS751_io_write( void *handle, uint8_t WriteAddr, uint8_t *pBuffer, uint16_t nBytesToWrite );
-int32_t STTS751_io_read( void *handle, uint8_t ReadAddr, uint8_t *pBuffer, uint16_t nBytesToRead );
+int32_t STTS751_io_write(void *handle, uint8_t WriteAddr, uint8_t *pBuffer, uint16_t nBytesToWrite);
+int32_t STTS751_io_read(void *handle, uint8_t ReadAddr, uint8_t *pBuffer, uint16_t nBytesToRead);
#ifdef __cplusplus
- }
+}
#endif
#endif
--- a/stts751_reg.c Wed Mar 06 10:18:41 2019 +0000
+++ b/stts751_reg.c Wed Jul 24 14:20:10 2019 +0000
@@ -63,12 +63,12 @@
* @retval interface status (MANDATORY: return 0 -> no Error)
*
*/
-int32_t stts751_read_reg(stts751_ctx_t* ctx, uint8_t reg, uint8_t* data,
- uint16_t len)
+int32_t stts751_read_reg(stts751_ctx_t *ctx, uint8_t reg, uint8_t *data,
+ uint16_t len)
{
- int32_t ret;
- ret = ctx->read_reg(ctx->handle, reg, data, len);
- return ret;
+ int32_t ret;
+ ret = ctx->read_reg(ctx->handle, reg, data, len);
+ return ret;
}
/**
@@ -81,12 +81,12 @@
* @retval interface status (MANDATORY: return 0 -> no Error)
*
*/
-int32_t stts751_write_reg(stts751_ctx_t* ctx, uint8_t reg, uint8_t* data,
- uint16_t len)
+int32_t stts751_write_reg(stts751_ctx_t *ctx, uint8_t reg, uint8_t *data,
+ uint16_t len)
{
- int32_t ret;
- ret = ctx->write_reg(ctx->handle, reg, data, len);
- return ret;
+ int32_t ret;
+ ret = ctx->write_reg(ctx->handle, reg, data, len);
+ return ret;
}
/**
@@ -104,7 +104,7 @@
float stts751_from_lsb_to_celsius(int16_t lsb)
{
- return ((float)lsb) / 256.0f;
+ return ((float)lsb) / 256.0f;
}
/**
@@ -126,7 +126,7 @@
int16_t stts751_from_celsius_to_lsb(float celsius)
{
- return (int16_t)(celsius * 256.0f);
+ return (int16_t)(celsius * 256.0f);
}
/**
@@ -152,31 +152,31 @@
*/
int32_t stts751_temp_data_rate_set(stts751_ctx_t *ctx, stts751_odr_t val)
{
- stts751_configuration_t configuration;
- stts751_conversion_rate_t conversion_rate;
- uint8_t dummy_value = 0xAA;
- int32_t ret;
+ stts751_configuration_t configuration;
+ stts751_conversion_rate_t conversion_rate;
+ uint8_t dummy_value = 0xAA;
+ int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_CONVERSION_RATE,
- (uint8_t*)&conversion_rate, 1);
- if (ret == 0) {
- conversion_rate.conv = (uint8_t)val & 0x0FU;
- ret = stts751_write_reg(ctx, STTS751_CONVERSION_RATE,
- (uint8_t*)&conversion_rate, 1);
- }
- if (ret == 0) {
- ret = stts751_read_reg(ctx, STTS751_CONFIGURATION,
- (uint8_t*)&configuration, 1);
- }
- if (ret == 0) {
- configuration.stop = ((uint8_t)val & 0x80U) >> 7;
- ret = stts751_write_reg(ctx, STTS751_CONFIGURATION,
- (uint8_t*)&configuration, 1);
- }
- if ((ret == 0) && (val == STTS751_TEMP_ODR_ONE_SHOT)) {
- ret = stts751_write_reg(ctx, STTS751_ONE_SHOT, &dummy_value, 1);
- }
- return ret;
+ ret = stts751_read_reg(ctx, STTS751_CONVERSION_RATE,
+ (uint8_t *)&conversion_rate, 1);
+ if (ret == 0) {
+ conversion_rate.conv = (uint8_t)val & 0x0FU;
+ ret = stts751_write_reg(ctx, STTS751_CONVERSION_RATE,
+ (uint8_t *)&conversion_rate, 1);
+ }
+ if (ret == 0) {
+ ret = stts751_read_reg(ctx, STTS751_CONFIGURATION,
+ (uint8_t *)&configuration, 1);
+ }
+ if (ret == 0) {
+ configuration.stop = ((uint8_t)val & 0x80U) >> 7;
+ ret = stts751_write_reg(ctx, STTS751_CONFIGURATION,
+ (uint8_t *)&configuration, 1);
+ }
+ if ((ret == 0) && (val == STTS751_TEMP_ODR_ONE_SHOT)) {
+ ret = stts751_write_reg(ctx, STTS751_ONE_SHOT, &dummy_value, 1);
+ }
+ return ret;
}
/**
@@ -189,58 +189,58 @@
*/
int32_t stts751_temp_data_rate_get(stts751_ctx_t *ctx, stts751_odr_t *val)
{
- stts751_conversion_rate_t conversion_rate;
- stts751_configuration_t configuration;
- int32_t ret;
+ stts751_conversion_rate_t conversion_rate;
+ stts751_configuration_t configuration;
+ int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_CONVERSION_RATE,
- (uint8_t*)&conversion_rate, 1);
- if (ret == 0) {
- ret = stts751_read_reg(ctx, STTS751_CONFIGURATION,
- (uint8_t*)&configuration, 1);
- }
- switch ( (configuration.stop << 7) + conversion_rate.conv) {
- case STTS751_TEMP_ODR_OFF:
- *val = STTS751_TEMP_ODR_OFF;
- break;
- case STTS751_TEMP_ODR_ONE_SHOT:
- *val = STTS751_TEMP_ODR_ONE_SHOT;
- break;
- case STTS751_TEMP_ODR_62mHz5:
- *val = STTS751_TEMP_ODR_62mHz5;
- break;
- case STTS751_TEMP_ODR_125mHz:
- *val = STTS751_TEMP_ODR_125mHz;
- break;
- case STTS751_TEMP_ODR_250mHz:
- *val = STTS751_TEMP_ODR_250mHz;
- break;
- case STTS751_TEMP_ODR_500mHz:
- *val = STTS751_TEMP_ODR_500mHz;
- break;
- case STTS751_TEMP_ODR_1Hz:
- *val = STTS751_TEMP_ODR_1Hz;
- break;
- case STTS751_TEMP_ODR_2Hz:
- *val = STTS751_TEMP_ODR_2Hz;
- break;
- case STTS751_TEMP_ODR_4Hz:
- *val = STTS751_TEMP_ODR_4Hz;
- break;
- case STTS751_TEMP_ODR_8Hz:
- *val = STTS751_TEMP_ODR_8Hz;
- break;
- case STTS751_TEMP_ODR_16Hz:
- *val = STTS751_TEMP_ODR_16Hz;
- break;
- case STTS751_TEMP_ODR_32Hz:
- *val = STTS751_TEMP_ODR_32Hz;
- break;
- default:
- *val = STTS751_TEMP_ODR_OFF;
- break;
- }
- return ret;
+ ret = stts751_read_reg(ctx, STTS751_CONVERSION_RATE,
+ (uint8_t *)&conversion_rate, 1);
+ if (ret == 0) {
+ ret = stts751_read_reg(ctx, STTS751_CONFIGURATION,
+ (uint8_t *)&configuration, 1);
+ }
+ switch ((configuration.stop << 7) + conversion_rate.conv) {
+ case STTS751_TEMP_ODR_OFF:
+ *val = STTS751_TEMP_ODR_OFF;
+ break;
+ case STTS751_TEMP_ODR_ONE_SHOT:
+ *val = STTS751_TEMP_ODR_ONE_SHOT;
+ break;
+ case STTS751_TEMP_ODR_62mHz5:
+ *val = STTS751_TEMP_ODR_62mHz5;
+ break;
+ case STTS751_TEMP_ODR_125mHz:
+ *val = STTS751_TEMP_ODR_125mHz;
+ break;
+ case STTS751_TEMP_ODR_250mHz:
+ *val = STTS751_TEMP_ODR_250mHz;
+ break;
+ case STTS751_TEMP_ODR_500mHz:
+ *val = STTS751_TEMP_ODR_500mHz;
+ break;
+ case STTS751_TEMP_ODR_1Hz:
+ *val = STTS751_TEMP_ODR_1Hz;
+ break;
+ case STTS751_TEMP_ODR_2Hz:
+ *val = STTS751_TEMP_ODR_2Hz;
+ break;
+ case STTS751_TEMP_ODR_4Hz:
+ *val = STTS751_TEMP_ODR_4Hz;
+ break;
+ case STTS751_TEMP_ODR_8Hz:
+ *val = STTS751_TEMP_ODR_8Hz;
+ break;
+ case STTS751_TEMP_ODR_16Hz:
+ *val = STTS751_TEMP_ODR_16Hz;
+ break;
+ case STTS751_TEMP_ODR_32Hz:
+ *val = STTS751_TEMP_ODR_32Hz;
+ break;
+ default:
+ *val = STTS751_TEMP_ODR_OFF;
+ break;
+ }
+ return ret;
}
/**
@@ -253,15 +253,15 @@
*/
int32_t stts751_resolution_set(stts751_ctx_t *ctx, stts751_tres_t val)
{
- stts751_configuration_t reg;
- int32_t ret;
+ stts751_configuration_t reg;
+ int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_CONFIGURATION,(uint8_t*) ®, 1);
- if (ret == 0) {
- reg.tres = (uint8_t) val;
- ret = stts751_write_reg(ctx, STTS751_CONFIGURATION,(uint8_t*) ®, 1);
- }
- return ret;
+ ret = stts751_read_reg(ctx, STTS751_CONFIGURATION, (uint8_t *) ®, 1);
+ if (ret == 0) {
+ reg.tres = (uint8_t) val;
+ ret = stts751_write_reg(ctx, STTS751_CONFIGURATION, (uint8_t *) ®, 1);
+ }
+ return ret;
}
/**
@@ -274,29 +274,29 @@
*/
int32_t stts751_resolution_get(stts751_ctx_t *ctx, stts751_tres_t *val)
{
- stts751_configuration_t reg;
- int32_t ret;
+ stts751_configuration_t reg;
+ int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_CONFIGURATION,(uint8_t*) ®, 1);
+ ret = stts751_read_reg(ctx, STTS751_CONFIGURATION, (uint8_t *) ®, 1);
- switch (reg.tres) {
- case STTS751_9bit:
- *val = STTS751_9bit;
- break;
- case STTS751_10bit:
- *val = STTS751_10bit;
- break;
- case STTS751_11bit:
- *val = STTS751_11bit;
- break;
- case STTS751_12bit:
- *val = STTS751_12bit;
- break;
- default:
- *val = STTS751_9bit;
- break;
- }
- return ret;
+ switch (reg.tres) {
+ case STTS751_9bit:
+ *val = STTS751_9bit;
+ break;
+ case STTS751_10bit:
+ *val = STTS751_10bit;
+ break;
+ case STTS751_11bit:
+ *val = STTS751_11bit;
+ break;
+ case STTS751_12bit:
+ *val = STTS751_12bit;
+ break;
+ default:
+ *val = STTS751_9bit;
+ break;
+ }
+ return ret;
}
/**
@@ -309,9 +309,9 @@
*/
int32_t stts751_status_reg_get(stts751_ctx_t *ctx, stts751_status_t *val)
{
- int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_STATUS, (uint8_t*) val, 1);
- return ret;
+ int32_t ret;
+ ret = stts751_read_reg(ctx, STTS751_STATUS, (uint8_t *) val, 1);
+ return ret;
}
/**
@@ -324,13 +324,13 @@
*/
int32_t stts751_flag_busy_get(stts751_ctx_t *ctx, uint8_t *val)
{
- stts751_status_t reg;
- int32_t ret;
+ stts751_status_t reg;
+ int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_STATUS, (uint8_t*)®, 1);
- *val = reg.busy;
+ ret = stts751_read_reg(ctx, STTS751_STATUS, (uint8_t *)®, 1);
+ *val = reg.busy;
- return ret;
+ return ret;
}
/**
@@ -356,20 +356,20 @@
*/
int32_t stts751_temperature_raw_get(stts751_ctx_t *ctx, int16_t *buff)
{
- uint16_t temperature;
- uint8_t temperature_low;
- int32_t ret;
+ uint16_t temperature;
+ uint8_t temperature_low;
+ int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_TEMPERATURE_HIGH,
- (uint8_t*)&temperature, 1);
- if (ret == 0) {
- ret = stts751_read_reg(ctx, STTS751_TEMPERATURE_LOW,
- &temperature_low, 1);
+ ret = stts751_read_reg(ctx, STTS751_TEMPERATURE_HIGH,
+ (uint8_t *)&temperature, 1);
+ if (ret == 0) {
+ ret = stts751_read_reg(ctx, STTS751_TEMPERATURE_LOW,
+ &temperature_low, 1);
- temperature = (temperature << 8) + temperature_low;
- *buff = (int16_t)temperature;
- }
- return ret;
+ temperature = (temperature << 8) + temperature_low;
+ *buff = (int16_t)temperature;
+ }
+ return ret;
}
/**
@@ -394,15 +394,15 @@
*/
int32_t stts751_pin_event_route_set(stts751_ctx_t *ctx, uint8_t val)
{
- stts751_configuration_t reg;
- int32_t ret;
+ stts751_configuration_t reg;
+ int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_CONFIGURATION,(uint8_t*)®, 1);
- if (ret == 0) {
- reg.mask1 = val;
- ret = stts751_write_reg(ctx, STTS751_CONFIGURATION, (uint8_t*)®, 1);
- }
- return ret;
+ ret = stts751_read_reg(ctx, STTS751_CONFIGURATION, (uint8_t *)®, 1);
+ if (ret == 0) {
+ reg.mask1 = val;
+ ret = stts751_write_reg(ctx, STTS751_CONFIGURATION, (uint8_t *)®, 1);
+ }
+ return ret;
}
/**
@@ -415,11 +415,11 @@
*/
int32_t stts751_pin_event_route_get(stts751_ctx_t *ctx, uint8_t *val)
{
- stts751_configuration_t reg;
- int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_CONFIGURATION, (uint8_t*)®, 1);
- *val = reg.mask1;
- return ret;
+ stts751_configuration_t reg;
+ int32_t ret;
+ ret = stts751_read_reg(ctx, STTS751_CONFIGURATION, (uint8_t *)®, 1);
+ *val = reg.mask1;
+ return ret;
}
/**
@@ -446,20 +446,20 @@
int32_t stts751_high_temperature_threshold_set(stts751_ctx_t *ctx,
int16_t buff)
{
- uint8_t *temperature_ptr;
- int32_t ret;
+ uint8_t *temperature_ptr;
+ int32_t ret;
- temperature_ptr = (uint8_t*)&buff;
- ret = stts751_write_reg(ctx, STTS751_TEMPERATURE_HIGH_LIMIT_LOW,
- (uint8_t*)temperature_ptr, 1);
+ temperature_ptr = (uint8_t *)&buff;
+ ret = stts751_write_reg(ctx, STTS751_TEMPERATURE_HIGH_LIMIT_LOW,
+ (uint8_t *)temperature_ptr, 1);
- if (ret == 0) {
- temperature_ptr++;
- ret = stts751_write_reg(ctx, STTS751_TEMPERATURE_HIGH_LIMIT_HIGH,
- (uint8_t*)temperature_ptr, 1);
- }
+ if (ret == 0) {
+ temperature_ptr++;
+ ret = stts751_write_reg(ctx, STTS751_TEMPERATURE_HIGH_LIMIT_HIGH,
+ (uint8_t *)temperature_ptr, 1);
+ }
- return ret;
+ return ret;
}
/**
@@ -473,20 +473,20 @@
int32_t stts751_high_temperature_threshold_get(stts751_ctx_t *ctx,
int16_t *buff)
{
- uint16_t temperature;
- uint8_t temperature_low;
- int32_t ret;
+ uint16_t temperature;
+ uint8_t temperature_low;
+ int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_TEMPERATURE_HIGH_LIMIT_HIGH,
- (uint8_t*)&temperature, 1);
- if (ret == 0) {
- ret = stts751_read_reg(ctx, STTS751_TEMPERATURE_HIGH_LIMIT_LOW,
- &temperature_low, 1);
+ ret = stts751_read_reg(ctx, STTS751_TEMPERATURE_HIGH_LIMIT_HIGH,
+ (uint8_t *)&temperature, 1);
+ if (ret == 0) {
+ ret = stts751_read_reg(ctx, STTS751_TEMPERATURE_HIGH_LIMIT_LOW,
+ &temperature_low, 1);
- temperature = (temperature << 8) + temperature_low;
- *buff = (int16_t)temperature;
- }
- return ret;
+ temperature = (temperature << 8) + temperature_low;
+ *buff = (int16_t)temperature;
+ }
+ return ret;
}
/**
@@ -501,20 +501,20 @@
int16_t buff)
{
- uint8_t *temperature_ptr;
- int32_t ret;
+ uint8_t *temperature_ptr;
+ int32_t ret;
- temperature_ptr = (uint8_t*)&buff;
- ret = stts751_write_reg(ctx, STTS751_TEMPERATURE_LOW_LIMIT_LOW,
- (uint8_t*)temperature_ptr, 1);
+ temperature_ptr = (uint8_t *)&buff;
+ ret = stts751_write_reg(ctx, STTS751_TEMPERATURE_LOW_LIMIT_LOW,
+ (uint8_t *)temperature_ptr, 1);
- if (ret == 0) {
- temperature_ptr++;
- ret = stts751_write_reg(ctx, STTS751_TEMPERATURE_LOW_LIMIT_HIGH,
- (uint8_t*)temperature_ptr, 1);
- }
+ if (ret == 0) {
+ temperature_ptr++;
+ ret = stts751_write_reg(ctx, STTS751_TEMPERATURE_LOW_LIMIT_HIGH,
+ (uint8_t *)temperature_ptr, 1);
+ }
- return ret;
+ return ret;
}
/**
@@ -528,21 +528,21 @@
int32_t stts751_low_temperature_threshold_get(stts751_ctx_t *ctx,
int16_t *buff)
{
- uint16_t temperature;
- uint8_t temperature_low;
- int32_t ret;
+ uint16_t temperature;
+ uint8_t temperature_low;
+ int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_TEMPERATURE_LOW_LIMIT_HIGH,
- (uint8_t*)&temperature, 1);
- if (ret == 0) {
- ret = stts751_read_reg(ctx, STTS751_TEMPERATURE_LOW_LIMIT_LOW,
- &temperature_low, 1);
+ ret = stts751_read_reg(ctx, STTS751_TEMPERATURE_LOW_LIMIT_HIGH,
+ (uint8_t *)&temperature, 1);
+ if (ret == 0) {
+ ret = stts751_read_reg(ctx, STTS751_TEMPERATURE_LOW_LIMIT_LOW,
+ &temperature_low, 1);
- temperature = (temperature << 8) + temperature_low;
- *buff = (int16_t)temperature;
- }
+ temperature = (temperature << 8) + temperature_low;
+ *buff = (int16_t)temperature;
+ }
- return ret;
+ return ret;
}
/**
@@ -551,13 +551,13 @@
*/
- /**
- * @defgroup STTS751 over temperature alarm
- * @brief This section groups all the functions that manage
- * over temperature alarm functionality.
- * @{
- *
- */
+/**
+* @defgroup STTS751 over temperature alarm
+* @brief This section groups all the functions that manage
+* over temperature alarm functionality.
+* @{
+*
+*/
/**
* @brief Thermal Limit. 1 LSB = 1 degC (max 127 degC min -127 degC ).[set]
@@ -569,9 +569,9 @@
*/
int32_t stts751_ota_thermal_limit_set(stts751_ctx_t *ctx, int8_t val)
{
- int32_t ret;
- ret = stts751_write_reg(ctx, STTS751_THERM_LIMIT, (uint8_t*)&val, 1);
- return ret;
+ int32_t ret;
+ ret = stts751_write_reg(ctx, STTS751_THERM_LIMIT, (uint8_t *)&val, 1);
+ return ret;
}
/**
@@ -584,10 +584,10 @@
*/
int32_t stts751_ota_thermal_limit_get(stts751_ctx_t *ctx, int8_t *val)
{
- int32_t ret;
+ int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_THERM_LIMIT, (uint8_t*)val, 1);
- return ret;
+ ret = stts751_read_reg(ctx, STTS751_THERM_LIMIT, (uint8_t *)val, 1);
+ return ret;
}
/**
@@ -601,10 +601,10 @@
*/
int32_t stts751_ota_thermal_hyst_set(stts751_ctx_t *ctx, int8_t val)
{
- int32_t ret;
+ int32_t ret;
- ret = stts751_write_reg(ctx, STTS751_THERM_HYSTERESIS, (uint8_t*)&val, 1);
- return ret;
+ ret = stts751_write_reg(ctx, STTS751_THERM_HYSTERESIS, (uint8_t *)&val, 1);
+ return ret;
}
/**
@@ -618,10 +618,10 @@
*/
int32_t stts751_ota_thermal_hyst_get(stts751_ctx_t *ctx, int8_t *val)
{
- int32_t ret;
+ int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_THERM_HYSTERESIS, (uint8_t*)val, 1);
- return ret;
+ ret = stts751_read_reg(ctx, STTS751_THERM_HYSTERESIS, (uint8_t *)val, 1);
+ return ret;
}
/**
@@ -647,15 +647,15 @@
*/
int32_t stts751_smbus_timeout_set(stts751_ctx_t *ctx, uint8_t val)
{
- stts751_smbus_timeout_t reg;
- int32_t ret;
+ stts751_smbus_timeout_t reg;
+ int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_SMBUS_TIMEOUT,(uint8_t*)®, 1);
- if (ret == 0) {
- reg.timeout = val;
- ret = stts751_write_reg(ctx, STTS751_SMBUS_TIMEOUT, (uint8_t*)®, 1);
- }
- return ret;
+ ret = stts751_read_reg(ctx, STTS751_SMBUS_TIMEOUT, (uint8_t *)®, 1);
+ if (ret == 0) {
+ reg.timeout = val;
+ ret = stts751_write_reg(ctx, STTS751_SMBUS_TIMEOUT, (uint8_t *)®, 1);
+ }
+ return ret;
}
/**
@@ -669,11 +669,11 @@
*/
int32_t stts751_smbus_timeout_get(stts751_ctx_t *ctx, uint8_t *val)
{
- stts751_smbus_timeout_t reg;
- int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_SMBUS_TIMEOUT, (uint8_t*)®, 1);
- *val = reg.timeout;
- return ret;
+ stts751_smbus_timeout_t reg;
+ int32_t ret;
+ ret = stts751_read_reg(ctx, STTS751_SMBUS_TIMEOUT, (uint8_t *)®, 1);
+ *val = reg.timeout;
+ return ret;
}
/**
@@ -686,18 +686,18 @@
*/
int32_t stts751_device_id_get(stts751_ctx_t *ctx, stts751_id_t *buff)
{
- int32_t ret;
- ret = stts751_read_reg(ctx, STTS751_PRODUCT_ID,
- (uint8_t*)&buff->product_id, 1);
- if (ret == 0){
- ret = stts751_read_reg(ctx, STTS751_MANUFACTURER_ID,
- (uint8_t*)&buff->manufacturer_id, 1);
- }
- if (ret == 0){
- ret = stts751_read_reg(ctx, STTS751_REVISION_ID,
- (uint8_t*)&buff->revision_id, 1);
- }
- return ret;
+ int32_t ret;
+ ret = stts751_read_reg(ctx, STTS751_PRODUCT_ID,
+ (uint8_t *)&buff->product_id, 1);
+ if (ret == 0) {
+ ret = stts751_read_reg(ctx, STTS751_MANUFACTURER_ID,
+ (uint8_t *)&buff->manufacturer_id, 1);
+ }
+ if (ret == 0) {
+ ret = stts751_read_reg(ctx, STTS751_REVISION_ID,
+ (uint8_t *)&buff->revision_id, 1);
+ }
+ return ret;
}
/**
--- a/stts751_reg.h Wed Mar 06 10:18:41 2019 +0000
+++ b/stts751_reg.h Wed Jul 24 14:20:10 2019 +0000
@@ -40,7 +40,7 @@
#define STTS751_REGS_H
#ifdef __cplusplus
- extern "C" {
+extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
@@ -72,24 +72,24 @@
*
*/
-typedef union{
- int16_t i16bit[3];
- uint8_t u8bit[6];
+typedef union {
+ int16_t i16bit[3];
+ uint8_t u8bit[6];
} axis3bit16_t;
-typedef union{
- int16_t i16bit;
- uint8_t u8bit[2];
+typedef union {
+ int16_t i16bit;
+ uint8_t u8bit[2];
} axis1bit16_t;
-typedef union{
- int32_t i32bit[3];
- uint8_t u8bit[12];
+typedef union {
+ int32_t i32bit[3];
+ uint8_t u8bit[12];
} axis3bit32_t;
-typedef union{
- int32_t i32bit;
- uint8_t u8bit[4];
+typedef union {
+ int32_t i32bit;
+ uint8_t u8bit[4];
} axis1bit32_t;
/**
@@ -97,15 +97,15 @@
*
*/
-typedef struct{
- uint8_t bit0 : 1;
- uint8_t bit1 : 1;
- uint8_t bit2 : 1;
- uint8_t bit3 : 1;
- uint8_t bit4 : 1;
- uint8_t bit5 : 1;
- uint8_t bit6 : 1;
- uint8_t bit7 : 1;
+typedef struct {
+ uint8_t bit0 : 1;
+ uint8_t bit1 : 1;
+ uint8_t bit2 : 1;
+ uint8_t bit3 : 1;
+ uint8_t bit4 : 1;
+ uint8_t bit5 : 1;
+ uint8_t bit6 : 1;
+ uint8_t bit7 : 1;
} bitwise_t;
#define PROPERTY_DISABLE (0U)
@@ -126,15 +126,15 @@
*
*/
-typedef int32_t (*stts751_write_ptr)(void *, uint8_t, uint8_t*, uint16_t);
-typedef int32_t (*stts751_read_ptr) (void *, uint8_t, uint8_t*, uint16_t);
+typedef int32_t (*stts751_write_ptr)(void *, uint8_t, uint8_t *, uint16_t);
+typedef int32_t (*stts751_read_ptr)(void *, uint8_t, uint8_t *, uint16_t);
typedef struct {
- /** Component mandatory fields **/
- stts751_write_ptr write_reg;
- stts751_read_ptr read_reg;
- /** Customizable optional pointer **/
- void *handle;
+ /** Component mandatory fields **/
+ stts751_write_ptr write_reg;
+ stts751_read_ptr read_reg;
+ /** Customizable optional pointer **/
+ void *handle;
} stts751_ctx_t;
/**
@@ -175,27 +175,27 @@
#define STTS751_TEMPERATURE_HIGH 0x00U
#define STTS751_STATUS 0x01U
typedef struct {
- uint8_t thrm : 1;
- uint8_t not_used_01 : 4;
- uint8_t t_low : 1;
- uint8_t t_high : 1;
- uint8_t busy : 1;
+ uint8_t thrm : 1;
+ uint8_t not_used_01 : 4;
+ uint8_t t_low : 1;
+ uint8_t t_high : 1;
+ uint8_t busy : 1;
} stts751_status_t;
#define STTS751_TEMPERATURE_LOW 0x02U
#define STTS751_CONFIGURATION 0x03U
typedef struct {
- uint8_t not_used_01 : 2;
- uint8_t tres : 2;
- uint8_t not_used_02 : 2;
- uint8_t stop : 1;
- uint8_t mask1 : 1;
+ uint8_t not_used_01 : 2;
+ uint8_t tres : 2;
+ uint8_t not_used_02 : 2;
+ uint8_t stop : 1;
+ uint8_t mask1 : 1;
} stts751_configuration_t;
#define STTS751_CONVERSION_RATE 0x04U
typedef struct {
- uint8_t conv : 4;
- uint8_t not_used_01 : 4;
+ uint8_t conv : 4;
+ uint8_t not_used_01 : 4;
} stts751_conversion_rate_t;
#define STTS751_TEMPERATURE_HIGH_LIMIT_HIGH 0x05U
@@ -207,8 +207,8 @@
#define STTS751_THERM_HYSTERESIS 0x21U
#define STTS751_SMBUS_TIMEOUT 0x22U
typedef struct {
- uint8_t not_used_01 : 7;
- uint8_t timeout : 1;
+ uint8_t not_used_01 : 7;
+ uint8_t timeout : 1;
} stts751_smbus_timeout_t;
#define STTS751_PRODUCT_ID 0xFDU
@@ -227,13 +227,13 @@
* @{
*
*/
-typedef union{
- stts751_status_t status;
- stts751_configuration_t configuration;
- stts751_conversion_rate_t conversion_rate;
- stts751_smbus_timeout_t smbus_timeout;
- bitwise_t bitwise;
- uint8_t byte;
+typedef union {
+ stts751_status_t status;
+ stts751_configuration_t configuration;
+ stts751_conversion_rate_t conversion_rate;
+ stts751_smbus_timeout_t smbus_timeout;
+ bitwise_t bitwise;
+ uint8_t byte;
} stts751_reg_t;
/**
@@ -241,36 +241,36 @@
*
*/
-int32_t stts751_read_reg(stts751_ctx_t *ctx, uint8_t reg, uint8_t* data,
+int32_t stts751_read_reg(stts751_ctx_t *ctx, uint8_t reg, uint8_t *data,
+ uint16_t len);
+int32_t stts751_write_reg(stts751_ctx_t *ctx, uint8_t reg, uint8_t *data,
uint16_t len);
-int32_t stts751_write_reg(stts751_ctx_t *ctx, uint8_t reg, uint8_t* data,
- uint16_t len);
extern float stts751_from_lsb_to_celsius(int16_t lsb);
extern int16_t stts751_from_celsius_to_lsb(float celsius);
typedef enum {
- STTS751_TEMP_ODR_OFF = 0x80,
- STTS751_TEMP_ODR_ONE_SHOT = 0x90,
- STTS751_TEMP_ODR_62mHz5 = 0x00,
- STTS751_TEMP_ODR_125mHz = 0x01,
- STTS751_TEMP_ODR_250mHz = 0x02,
- STTS751_TEMP_ODR_500mHz = 0x03,
- STTS751_TEMP_ODR_1Hz = 0x04,
- STTS751_TEMP_ODR_2Hz = 0x05,
- STTS751_TEMP_ODR_4Hz = 0x06,
- STTS751_TEMP_ODR_8Hz = 0x07,
- STTS751_TEMP_ODR_16Hz = 0x08, /* 9, 10, or 11-bit resolutions only */
- STTS751_TEMP_ODR_32Hz = 0x09, /* 9 or 10-bit resolutions only */
+ STTS751_TEMP_ODR_OFF = 0x80,
+ STTS751_TEMP_ODR_ONE_SHOT = 0x90,
+ STTS751_TEMP_ODR_62mHz5 = 0x00,
+ STTS751_TEMP_ODR_125mHz = 0x01,
+ STTS751_TEMP_ODR_250mHz = 0x02,
+ STTS751_TEMP_ODR_500mHz = 0x03,
+ STTS751_TEMP_ODR_1Hz = 0x04,
+ STTS751_TEMP_ODR_2Hz = 0x05,
+ STTS751_TEMP_ODR_4Hz = 0x06,
+ STTS751_TEMP_ODR_8Hz = 0x07,
+ STTS751_TEMP_ODR_16Hz = 0x08, /* 9, 10, or 11-bit resolutions only */
+ STTS751_TEMP_ODR_32Hz = 0x09, /* 9 or 10-bit resolutions only */
} stts751_odr_t;
int32_t stts751_temp_data_rate_set(stts751_ctx_t *ctx, stts751_odr_t val);
int32_t stts751_temp_data_rate_get(stts751_ctx_t *ctx, stts751_odr_t *val);
typedef enum {
- STTS751_9bit = 2,
- STTS751_10bit = 0,
- STTS751_11bit = 1,
- STTS751_12bit = 3,
+ STTS751_9bit = 2,
+ STTS751_10bit = 0,
+ STTS751_11bit = 1,
+ STTS751_12bit = 3,
} stts751_tres_t;
int32_t stts751_resolution_set(stts751_ctx_t *ctx, stts751_tres_t val);
int32_t stts751_resolution_get(stts751_ctx_t *ctx, stts751_tres_t *val);
@@ -305,9 +305,9 @@
int32_t stts751_smbus_timeout_get(stts751_ctx_t *ctx, uint8_t *val);
typedef struct {
- uint8_t product_id;
- uint8_t manufacturer_id;
- uint8_t revision_id;
+ uint8_t product_id;
+ uint8_t manufacturer_id;
+ uint8_t revision_id;
} stts751_id_t;
int32_t stts751_device_id_get(stts751_ctx_t *ctx, stts751_id_t *buff);