1Mbit EEPROMを便利に使うためのライブラリ
Dependents: EEPROM_Reset_Program EEPROM_Encode_Program SWAN_IZU2019_v1 Hybrid_OB2021_eeprom ... more
EEPROM_lib.h
- Committer:
- Sigma884
- Date:
- 2019-02-11
- Revision:
- 0:a945081a4a9e
- Child:
- 1:66c2c82f4b34
File content as of revision 0:a945081a4a9e:
#ifndef EEPROM_LIB_H_ #define EEPROM_LIB_H_ #define EEPROM_ADDR_00_0 0xA0 #define EEPROM_ADDR_00_1 0xA8 #define EEPROM_ADDR_01_0 0xA2 #define EEPROM_ADDR_01_1 0xAA #define EEPROM_ADDR_10_0 0xA4 #define EEPROM_ADDR_10_1 0xAC #define EEPROM_ADDR_11_0 0xA6 #define EEPROM_ADDR_11_1 0xAE #define EEPROM_WAIT_US 2500 class EEPROM_lib{ public: EEPROM_lib(I2C &user_i2c, int num); void writeByte(int num, int block, char ADDR_H, char ADDR_L, char DATA); void writePage(int num, int block, char ADDR_H, char ADDR_L, char *DATA); void setWriteAddr(int num, int block, char ADDR_H, char ADDR_L); int chargeBuff(char DATA); int chargeBuff(bool DATA); int chargeBuff(int DATA); int chargeBuff(short DATA); int chargeBuff(long long DATA); int chargeBuff(float DATA); int chargeBuff(double DATA); void writeBuff(); int setNextPage(); char readByte(int num, int block, char ADDR_H, char ADDR_L); void readMultiByte(int num, int block, char ADDR_H, char ADDR_L, char *DATA, int size); private: I2C *i2c; char slave; union EEPROM_CAST{ long long ll; int i; short s; float f; double d; char c; bool b; char cast[8]; }; union EEPROM_CAST EEPROM_cast; char cmd[130]; //I2C通信用コマンド配列 //int max_ptr; //最大どこまで書き込めるか int max_num; int buff_ptr; //バッファの何個目まで入っているか //int eeprom_ptr; //いまどこまで書き込んでいるか char ptr[4]; }; #endif