EEprom i2c 24AA08 & 24LC08 (no Address pin) library control

Dependents:   accuBlast_display

Revision:
0:e295d3596c85
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Ee24xx08.cpp	Wed Sep 10 08:57:38 2014 +0000
@@ -0,0 +1,49 @@
+#include "Ee24xx08.h"
+
+
+//***********************************/************************************
+//                         Constructors                                 //
+//***********************************/************************************
+Ee24xx08::Ee24xx08(I2C *i2c):_i2c(i2c)
+{ 
+}
+
+//***********************************/************************************
+//                             Public Methods                           //
+//***********************************/************************************      
+bool Ee24xx08::write(const short  addr, const char byte)
+{
+    char i2cBuffer[2];
+    i2cBuffer[0] = (unsigned char)addr; //8lsb of address word
+    i2cBuffer[1] = byte;                //byte to write
+    return _i2c->write(EE24xx08ADDR|((addr>>7)&0X0E),i2cBuffer,2);  //i2c adress + page adress & data send
+}
+
+bool Ee24xx08::write(const short  addr, const char* buffer,const int len)
+{
+    char i2cBuffer[len+1];
+    i2cBuffer[0] = (unsigned char)addr;
+    memcpy(i2cBuffer+1,buffer,len);
+
+    return _i2c->write(EE24xx08ADDR|((addr>>7)&0X0E),i2cBuffer,len);
+}
+
+bool Ee24xx08::read(const short  addr, char *byte)
+{
+
+    if(_i2c->write(EE24xx08ADDR|((addr>>7)&0X0E),(char*)&addr,1,true))
+    {
+        return true;   
+    }
+    return _i2c->read(EE24xx08ADDR|((addr>>7)&0X0E),byte,1);
+}
+
+bool Ee24xx08::read(const short  addr, char *buffer, const int len)
+{
+
+    if(_i2c->write(EE24xx08ADDR|((addr>>7)&0X0E),(char*)&addr,1,true))
+    {
+        return true;   
+    }
+    return _i2c->read(EE24xx08ADDR|((addr>>7)&0X0E),buffer,len);
+}