PLANET-Q EEPROM Library
Dependents: IZU2020_AVIONICS IZU2020_POST_PROCESS IZU2020_AVIONICS
Diff: PQEEPROM.h
- Revision:
- 1:fccbd0a70492
- Parent:
- 0:559c23c5884c
- Child:
- 2:bb2a2a6b2702
diff -r 559c23c5884c -r fccbd0a70492 PQEEPROM.h --- a/PQEEPROM.h Tue Dec 17 09:08:51 2019 +0000 +++ b/PQEEPROM.h Tue Dec 17 13:39:59 2019 +0000 @@ -1,6 +1,41 @@ #ifndef PQEEPROM_H_ #define PQEEPROM_H_ +/** + * EEPROM 24LC1025のライブラリ + * @note 1つにつき0x000000~0x01FFFFまでのアドレスが指定できます + * @note 2つ使用する場合は0x000000~0x03FFFFまでのアドレスが指定でき、最大4つ同時に使用できます + * @note 1ページは128バイトです + * @note ページをまたぐような書き込みは危険なのでしないこと + * @note 受信バッファは128バイトです + * @code +#include "mbed.h" +#include "PQEEPROM.h" + +Serial pc(USBTX, USBRX, 115200); + +I2C i2c(p9, p10); + +EEPROM eeprom(i2c); + +int addr; +char data[128]; +char buff[128]; + +int main() +{ + addr = 0x000000; + for(int i = 0; i < 128; i++) { + data[i] = 0xFF; + } + eeprom.write(addr, data, 128); + eeprom.read(addr, buff, 128); + for(int i = 0; i < 128; i++) { + pc.printf("%x ", buff[i]); + } +} + * @endcode + */ class EEPROM { private: @@ -8,9 +43,27 @@ int _addr; char cmd[130]; char buff[128]; + public: + /** + * @param i2c I2Cのインスタンスへの参照 + */ EEPROM(I2C &i2c); + + /** + * 連続書き込み + * @param addr 書き込みアドレス + * @param data 書き込むデータの配列 + * @param size 書き込むデータのサイズ + */ void write(int addr, char *data, int size); + + /** + * 連続読み込み + * @param addr 読み込みアドレス + * @param data 読み込むデータの配列 + * @param size 読み込むデータのサイズ + */ void read(int addr, char *data, int size); };