EEPROM with 64kByte Memory
Revision 4:660801ce718c, committed 2019-03-05
- Comitter:
- x1dmoesc
- Date:
- Tue Mar 05 09:44:30 2019 +0000
- Parent:
- 3:8a0bfc787463
- Commit message:
- debug function write() and read()
Changed in this revision
| AT24C64D.cpp | Show annotated file Show diff for this revision Revisions of this file |
| AT24C64D.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/AT24C64D.cpp Fri Mar 01 11:26:26 2019 +0000
+++ b/AT24C64D.cpp Tue Mar 05 09:44:30 2019 +0000
@@ -28,6 +28,22 @@
}
+//******************************************************************************//
+// Returns the address of the spi bus. This is the combination of the Hardware //
+// chip address and the user defined addres [A2..A0] //
+//******************************************************************************//
+uint8_t AT24C64D::getAddrBus(){
+ return AT24C64D_W;
+}
+
+
+
+//******************************************************************************//
+// Returns the user defined address [A2..A0] //
+//******************************************************************************//
+uint8_t AT24C64D::getAddrUser(){
+ return (AT24C64D_W >> 1) & USER_ADDR_MASK;
+}
//******************************************************************************//
// Sets the address for the writing position. If the address is higher as the //
@@ -131,7 +147,7 @@
// not implemented
/******************************************************************************/
bool AT24C64D::erase(){
- return ACK;
+ return NACK;
}
@@ -160,8 +176,6 @@
while(not isReady());
ACKpolling(AT24C64D_W);
-// printf("TimeOut: %d\n", uiTimeOut);
-
uiAddr = uiAddr & ADDR_MASK;
cBuffer[0] = (uiAddr >> 8) & 0xFF;
cBuffer[1] = uiAddr & 0xFF;
@@ -174,7 +188,7 @@
uiAddrWrite = uiAddr;
- incAddrWrite();
+ //incAddrWrite();
return bAck;
}
@@ -196,16 +210,7 @@
//
//******************************************************************************//
bool AT24C64D::read(char *cData){
-
- //bAck = ACKpolling(AT24C64D_R); // polling for ACK
-
- //if(bAck == ACK){
- i2c->start(); // send a start condition
- i2c->write(AT24C64D_R);
- *cData = i2c->read(false);
- i2c->stop();
- //}
- return bAck;
+ return read(uiAddrRead, cData);
}
--- a/AT24C64D.h Fri Mar 01 11:26:26 2019 +0000
+++ b/AT24C64D.h Tue Mar 05 09:44:30 2019 +0000
@@ -18,6 +18,8 @@
// function
AT24C64D(I2C *_i2c, uint8_t uiAddr);
+ virtual uint8_t getAddrBus();
+ virtual uint8_t getAddrUser();
virtual bool write(char * cData);
virtual bool write(uint16_t uiAddr, char *cData);
@@ -73,7 +75,7 @@
uint8_t uiAddrQuotient; //
uint8_t uiAddrRemainder; //
- //char cBuffer[2 + SIZE_PAGE]; // 2 Address Bytes + 32 Byte Data
+ char cBuffer[2 + SIZE_PAGE]; // 2 Address Bytes + 32 Byte Data
// Class
I2C *i2c;
@@ -85,7 +87,6 @@
void startTimer();
bool ACKpolling(uint8_t uiAdr);
//virtual void abortTransmition();
-
};