From 7b8c37d235c77d881db4184a798fc4b72a1fa279 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 15 Jan 2018 10:16:13 +0100 Subject: Add Software I2C implementation --- include/driver/soft_i2c.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 include/driver/soft_i2c.h (limited to 'include/driver/soft_i2c.h') diff --git a/include/driver/soft_i2c.h b/include/driver/soft_i2c.h new file mode 100644 index 0000000..aff63e3 --- /dev/null +++ b/include/driver/soft_i2c.h @@ -0,0 +1,26 @@ +#ifndef SOFTI2C_H +#define SOFTI2C_H + +class SoftI2C { + private: + SoftI2C(const SoftI2C ©); + + unsigned char sda, scl; + + void start(); + void stop(); + bool tx(unsigned char byte); + unsigned char rx(bool send_ack); + + public: + SoftI2C(unsigned char sda, unsigned char scl) : sda(sda), scl(scl) {} + signed char setup(); + void scan(unsigned int *results); + signed char xmit(unsigned char address, + unsigned char tx_len, unsigned char *tx_buf, + unsigned char rx_len, unsigned char *rx_buf); +}; + +extern SoftI2C i2c; + +#endif -- cgit v1.2.3