Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
AT24C64D.h
00001 #ifndef AT24C64D_H 00002 #define AT24C64D_H 00003 00004 #include "mbed.h" 00005 #include "AT24C.h" 00006 00007 class AT24C64D : public AT24C 00008 { 00009 00010 public: 00011 static const uint16_t ADDR_MASK = 0x1FFF; 00012 00013 //variable 00014 bool bAck; 00015 static const uint16_t READY_TIME_US = 5000; // Write time in us 00016 static const uint16_t READY_TIME_MS = 5; 00017 00018 00019 // function 00020 AT24C64D(I2C *_i2c, uint8_t uiAddr); 00021 virtual uint8_t getAddrBus(); 00022 virtual uint8_t getAddrUser(); 00023 00024 virtual bool write(char * cData); 00025 virtual bool write(uint16_t uiAddr, char *cData); 00026 virtual bool write(uint16_t uiAddr, char * cData, uint16_t uiLength); 00027 00028 00029 virtual bool read(char * cData); 00030 virtual bool read(uint16_t uiAddr, char *cData); 00031 virtual bool read(uint16_t uiAddr, char * cData, uint16_t uiLength); 00032 00033 virtual void reset(); 00034 virtual bool erase(); 00035 virtual bool isReady(); 00036 00037 00038 00039 virtual void setAddrWrite(uint16_t Addr); 00040 virtual uint16_t getAddrWrite(); 00041 virtual void incAddrWrite(); 00042 virtual void decAddrWrite(); 00043 00044 00045 virtual void setAddrRead(uint16_t Addr); 00046 virtual uint16_t getAddrRead(); 00047 virtual void incAddrRead(); 00048 virtual void decAddrRead(); 00049 00050 00051 private: 00052 00053 // constants 00054 00055 const uint8_t AT24C64D_W; 00056 const uint8_t AT24C64D_R; 00057 static const int HARD_ADDR = 0xA0; 00058 static const int USER_ADDR_MASK = 0x07; 00059 00060 00061 00062 static const uint8_t SIZE_PAGE = 32; // 32-Byte Page Write Mode (Partial Page Writes Allowed) 00063 static const uint16_t MEM_ADDR_MAX = 8192; // 0...4095 00064 static const uint16_t TIMEOUT_VAL = 1000; 00065 00066 // variable 00067 bool bReady; 00068 bool bTimerRun; 00069 uint16_t uiTimeOut; 00070 00071 uint16_t uiAddrWrite; 00072 uint16_t uiAddrRead; 00073 uint16_t uiAddrTemp; 00074 00075 uint8_t uiAddrQuotient; // 00076 uint8_t uiAddrRemainder; // 00077 00078 char cBuffer[2 + SIZE_PAGE]; // 2 Address Bytes + 32 Byte Data 00079 00080 // Class 00081 I2C *i2c; 00082 Timer *timer; 00083 00084 00085 // functions 00086 //virtual void setReady(); 00087 void startTimer(); 00088 bool ACKpolling(uint8_t uiAdr); 00089 //virtual void abortTransmition(); 00090 00091 }; 00092 00093 #endif
Generated on Fri Jul 22 2022 23:58:49 by
1.7.2