i2c driver for PiBorg PicoBorgReverse

Dependents:   TheBubbleWorks_MicroBorg

Revision:
2:cecfacbc2048
Parent:
0:f8a6d1cc7fa8
Child:
5:7f64fd1d1c8b
--- a/PicoBorgReverse.h	Tue Feb 09 11:16:09 2016 +0000
+++ b/PicoBorgReverse.h	Tue Feb 09 15:31:10 2016 +0000
@@ -3,6 +3,8 @@
 
 // Based on https://www.piborg.org/comment/498#comment-498
 
+#include "mbed.h"
+#include "MyDebug.h"
 
 /**************************************/
 /***** PicoBorg Reverse Constants *****/
@@ -60,12 +62,12 @@
 #define PBR_MINIMUM_I2C_ADDRESS     (0x03)  // Minimum allowed value for the I2C address
 #define PBR_MAXIMUM_I2C_ADDRESS     (0x77)  // Maximum allowed value for the I2C address
 
-
+extern Serial serial;
 
 class PicoBorgReverse
 {
 public:
-    PicoBorgReverse() : addr(PBR_DEFAULT_I2C_ADDRESS << 1) {
+    PicoBorgReverse(I2C* _i2c) : addr(PBR_DEFAULT_I2C_ADDRESS << 1), i2c(_i2c) {
     }    
     
     /**************************************/
@@ -157,13 +159,18 @@
     void i2c_write(char b1)
     {
         char data[1] = {b1};
-        uBit.i2c.write(addr, data, 1);
+        this->i2c->write(addr, data, 1);
     
     }
     void i2c_write(char b1, char b2)
     {
         char data[2] = {b1, b2};
-        uBit.i2c.write(addr, data, 2);
+        this->i2c->write(addr, data, 2);
+    }
+
+    int i2c_read(char* buf, int len) 
+    {
+        return (this->i2c->read(addr, buf, len));
     }
 
     /***************************************/
@@ -171,5 +178,5 @@
     /***************************************/
 
     int addr; // define the I2C Address
-
+    I2C* i2c;
 };
\ No newline at end of file