diff options
Diffstat (limited to 'include/driver')
-rw-r--r-- | include/driver/soft_i2c.h | 26 |
1 files changed, 26 insertions, 0 deletions
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 |