aboutsummaryrefslogtreecommitdiff
path: root/i2c.h
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2014-03-05 13:29:45 +0100
committerLars-Dominik Braun <lars@6xq.net>2014-03-05 13:29:45 +0100
commit88b71e25e2463aa6425a01b60b171f36f1029ea6 (patch)
tree94fd522a4ea789c1cfb03040d529befce918e0d9 /i2c.h
parent85ec57bb6f545084426527ecc80269544b904067 (diff)
downloadhourglass-88b71e25e2463aa6425a01b60b171f36f1029ea6.tar.gz
hourglass-88b71e25e2463aa6425a01b60b171f36f1029ea6.tar.bz2
hourglass-88b71e25e2463aa6425a01b60b171f36f1029ea6.zip
i2c: Add multi write
Diffstat (limited to 'i2c.h')
-rw-r--r--i2c.h15
1 files changed, 6 insertions, 9 deletions
diff --git a/i2c.h b/i2c.h
index abcf5f3..eb68d8b 100644
--- a/i2c.h
+++ b/i2c.h
@@ -4,7 +4,7 @@
typedef enum {
TWM_INVALID = 0,
TWM_WRITE,
- TWM_READ_MULTI,
+ TWM_READ,
} twMode;
typedef enum {
@@ -19,11 +19,10 @@ typedef struct {
twMode mode;
uint8_t address;
uint8_t subaddress;
- uint8_t data;
uint8_t step;
- /* read data store */
- uint8_t *retData;
- /* number of bytes to be read */
+ /* pointer to read/write data */
+ uint8_t *data;
+ /* number of bytes to be read/written */
uint8_t count;
/* current byte */
uint8_t i;
@@ -40,9 +39,7 @@ extern volatile twReq twr;
#include <stdbool.h>
void twInit ();
-bool twWrite (const uint8_t address, const uint8_t subaddress,
- const uint8_t data);
-bool twReadMulti (const uint8_t address, const uint8_t subaddress,
- uint8_t * const retData, const uint8_t count);
+bool twRequest (const twMode mode, const uint8_t address,
+ const uint8_t subaddress, uint8_t * const data, const uint8_t count);
#endif /* TW_H */