Class for making communication easier from code to i2c connected Rohm/Kionix sensors. Maybe could be used later also for abstracting Arduino/mbed os. Code ported from 'C'-library rohm-sensor-hal.
Dependents: kionix-kx123-hello rohm-bh1790glc-hello simple-sensor-client rohm-SensorShield-example
Fork of rohm-sensor-hal by
Revision 9:51c7b97b6a7d, committed 2016-10-03
- Comitter:
- MikkoZ
- Date:
- Mon Oct 03 11:07:46 2016 +0000
- Parent:
- 8:dea50f607a45
- Child:
- 10:7ac47540f580
- Commit message:
- Doxygen documentation updated.
Changed in this revision
| RegisterWriter/RegisterWriter.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/RegisterWriter/RegisterWriter.h Thu Sep 29 15:10:08 2016 +0000
+++ b/RegisterWriter/RegisterWriter.h Mon Oct 03 11:07:46 2016 +0000
@@ -17,11 +17,14 @@
#include "rohm_hal2.h" //types, DEBUG_print*, USE_*_HARDWARE_I2C
+/**
+* RegisterWriter class for writing sensor registers via I2C object
+*/
class RegisterWriter
{
public:
/**
- * Use pre-instantiated I2C instance for hal.
+ * Use pre-instantiated I2C instance for HAL.
*
* @param i2c_obj pre-instantiated i2c object.
*/
@@ -35,18 +38,51 @@
*/
RegisterWriter(PinName sda = I2C_SDA, PinName scl = I2C_SCL);
- /**
- * RegisterWriter destructor
- */
~RegisterWriter();
/**
- * read/write commands for sensor registers
+ * General read @buf_len value(s) to @*buf from sensor @reg in address @sad.
+ * @param sad Slave address of sensor
+ * @param reg Register of sensor
+ * @param *buf uint8_t[@buf_len] for read data
+ * @param buf_len amount of data to read from @reg
*/
uint8_t read_register(uint8_t sad, uint8_t reg, uint8_t* buf, uint8_t buf_len);
+
+ /**
+ * FIFO Read @buf_len value(s) to @*buf from sensor @reg in address @sad.
+ * Difference is the usage of stop-bit between commands.
+ * @param sad Slave address of sensor
+ * @param reg Register of sensor
+ * @param *buf uint8_t[@buf_len] for read data
+ * @param buf_len amount of data to read from @reg
+ */
uint8_t read_fifo_register(uint8_t sad, uint8_t reg, uint8_t* buf, uint8_t buf_len);
+
+ /**
+ * Write @data_len value(s) from @*data to sensor @reg in address @sad.
+ * @param sad Slave address of sensor
+ * @param reg Register of sensor
+ * @param *data uint8_t[@data_len] for written data
+ * @param data_len amount of data to written to @reg
+ */
void write_register(uint8_t sad, uint8_t reg, uint8_t* data, uint8_t data_len);
+
+ /**
+ * Write 1 value from @data to sensor @reg in address @sad.
+ * @param sad Slave address of sensor
+ * @param reg Register of sensor
+ * @param data to be written
+ */
void write_register(uint8_t sad, uint8_t reg, uint8_t data);
+
+ /**
+ * Read-change-write register (@sad/@reg)
+ * @param sad Slave address of sensor
+ * @param reg Register of sensor
+ * @param mask bits to clear before applying new @bits
+ * @param bits value to write
+ */
bool change_bits(uint8_t sad, uint8_t reg, uint8_t mask, uint8_t bits);
private:
