summaryrefslogtreecommitdiff
path: root/include/driver
diff options
context:
space:
mode:
Diffstat (limited to 'include/driver')
-rw-r--r--include/driver/soft_i2c.h26
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 &copy);
+
+ 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