1Mbit EEPROMを便利に使うためのライブラリ

Dependents:   EEPROM_Reset_Program EEPROM_Encode_Program SWAN_IZU2019_v1 Hybrid_OB2021_eeprom ... more

Committer:
Sigma884
Date:
Mon Feb 11 15:41:56 2019 +0000
Revision:
0:a945081a4a9e
Child:
1:66c2c82f4b34
EEPROM library alpha

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sigma884 0:a945081a4a9e 1 #ifndef EEPROM_LIB_H_
Sigma884 0:a945081a4a9e 2 #define EEPROM_LIB_H_
Sigma884 0:a945081a4a9e 3
Sigma884 0:a945081a4a9e 4 #define EEPROM_ADDR_00_0 0xA0
Sigma884 0:a945081a4a9e 5 #define EEPROM_ADDR_00_1 0xA8
Sigma884 0:a945081a4a9e 6
Sigma884 0:a945081a4a9e 7 #define EEPROM_ADDR_01_0 0xA2
Sigma884 0:a945081a4a9e 8 #define EEPROM_ADDR_01_1 0xAA
Sigma884 0:a945081a4a9e 9
Sigma884 0:a945081a4a9e 10 #define EEPROM_ADDR_10_0 0xA4
Sigma884 0:a945081a4a9e 11 #define EEPROM_ADDR_10_1 0xAC
Sigma884 0:a945081a4a9e 12
Sigma884 0:a945081a4a9e 13 #define EEPROM_ADDR_11_0 0xA6
Sigma884 0:a945081a4a9e 14 #define EEPROM_ADDR_11_1 0xAE
Sigma884 0:a945081a4a9e 15
Sigma884 0:a945081a4a9e 16 #define EEPROM_WAIT_US 2500
Sigma884 0:a945081a4a9e 17
Sigma884 0:a945081a4a9e 18
Sigma884 0:a945081a4a9e 19 class EEPROM_lib{
Sigma884 0:a945081a4a9e 20 public:
Sigma884 0:a945081a4a9e 21
Sigma884 0:a945081a4a9e 22 EEPROM_lib(I2C &user_i2c, int num);
Sigma884 0:a945081a4a9e 23
Sigma884 0:a945081a4a9e 24 void writeByte(int num, int block, char ADDR_H, char ADDR_L, char DATA);
Sigma884 0:a945081a4a9e 25 void writePage(int num, int block, char ADDR_H, char ADDR_L, char *DATA);
Sigma884 0:a945081a4a9e 26
Sigma884 0:a945081a4a9e 27 void setWriteAddr(int num, int block, char ADDR_H, char ADDR_L);
Sigma884 0:a945081a4a9e 28
Sigma884 0:a945081a4a9e 29 int chargeBuff(char DATA);
Sigma884 0:a945081a4a9e 30 int chargeBuff(bool DATA);
Sigma884 0:a945081a4a9e 31 int chargeBuff(int DATA);
Sigma884 0:a945081a4a9e 32 int chargeBuff(short DATA);
Sigma884 0:a945081a4a9e 33 int chargeBuff(long long DATA);
Sigma884 0:a945081a4a9e 34 int chargeBuff(float DATA);
Sigma884 0:a945081a4a9e 35 int chargeBuff(double DATA);
Sigma884 0:a945081a4a9e 36
Sigma884 0:a945081a4a9e 37 void writeBuff();
Sigma884 0:a945081a4a9e 38
Sigma884 0:a945081a4a9e 39 int setNextPage();
Sigma884 0:a945081a4a9e 40
Sigma884 0:a945081a4a9e 41 char readByte(int num, int block, char ADDR_H, char ADDR_L);
Sigma884 0:a945081a4a9e 42 void readMultiByte(int num, int block, char ADDR_H, char ADDR_L, char *DATA, int size);
Sigma884 0:a945081a4a9e 43
Sigma884 0:a945081a4a9e 44
Sigma884 0:a945081a4a9e 45 private:
Sigma884 0:a945081a4a9e 46 I2C *i2c;
Sigma884 0:a945081a4a9e 47 char slave;
Sigma884 0:a945081a4a9e 48
Sigma884 0:a945081a4a9e 49 union EEPROM_CAST{
Sigma884 0:a945081a4a9e 50 long long ll;
Sigma884 0:a945081a4a9e 51 int i;
Sigma884 0:a945081a4a9e 52 short s;
Sigma884 0:a945081a4a9e 53 float f;
Sigma884 0:a945081a4a9e 54 double d;
Sigma884 0:a945081a4a9e 55 char c;
Sigma884 0:a945081a4a9e 56 bool b;
Sigma884 0:a945081a4a9e 57 char cast[8];
Sigma884 0:a945081a4a9e 58 };
Sigma884 0:a945081a4a9e 59 union EEPROM_CAST EEPROM_cast;
Sigma884 0:a945081a4a9e 60
Sigma884 0:a945081a4a9e 61 char cmd[130]; //I2C通信用コマンド配列
Sigma884 0:a945081a4a9e 62 //int max_ptr; //最大どこまで書き込めるか
Sigma884 0:a945081a4a9e 63 int max_num;
Sigma884 0:a945081a4a9e 64
Sigma884 0:a945081a4a9e 65 int buff_ptr; //バッファの何個目まで入っているか
Sigma884 0:a945081a4a9e 66 //int eeprom_ptr; //いまどこまで書き込んでいるか
Sigma884 0:a945081a4a9e 67
Sigma884 0:a945081a4a9e 68 char ptr[4];
Sigma884 0:a945081a4a9e 69 };
Sigma884 0:a945081a4a9e 70
Sigma884 0:a945081a4a9e 71 #endif