AT24C1024の機能を簡単に使えるようにするライブラリー
at24c1024b.h@3:8957e88b3334, 2017-12-13 (annotated)
- Committer:
- r113330akki
- Date:
- Wed Dec 13 05:23:42 2017 +0000
- Revision:
- 3:8957e88b3334
- Parent:
- 2:d5b47e80c76c
doxygen???; ; ????????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
r113330akki | 0:b6847bb172b4 | 1 | /** |
r113330akki | 0:b6847bb172b4 | 2 | * @file at24c1024b.h |
r113330akki | 0:b6847bb172b4 | 3 | * @brief EEPROMのAT24C1024B用ライブラリ |
r113330akki | 0:b6847bb172b4 | 4 | * @author 西川顕史 |
r113330akki | 0:b6847bb172b4 | 5 | * @date 2017/12/11(開始日) |
r113330akki | 0:b6847bb172b4 | 6 | */ |
r113330akki | 0:b6847bb172b4 | 7 | #ifndef __AT24C1024B_H__ |
r113330akki | 0:b6847bb172b4 | 8 | #define __AT24C1024B_H__ |
r113330akki | 0:b6847bb172b4 | 9 | |
r113330akki | 0:b6847bb172b4 | 10 | #include "mbed.h" |
r113330akki | 1:3d1e7763c6f5 | 11 | |
r113330akki | 1:3d1e7763c6f5 | 12 | static const int AT24C1024B_ADDRESS = 0xa0; |
r113330akki | 1:3d1e7763c6f5 | 13 | |
r113330akki | 0:b6847bb172b4 | 14 | /** |
r113330akki | 0:b6847bb172b4 | 15 | * @brief AT24C1024Bの機能をまとめたクラス |
r113330akki | 0:b6847bb172b4 | 16 | * @details |
r113330akki | 0:b6847bb172b4 | 17 | */ |
r113330akki | 0:b6847bb172b4 | 18 | class AT24C1024B |
r113330akki | 0:b6847bb172b4 | 19 | { |
r113330akki | 0:b6847bb172b4 | 20 | public: |
r113330akki | 3:8957e88b3334 | 21 | //@{ |
r113330akki | 0:b6847bb172b4 | 22 | /** |
r113330akki | 1:3d1e7763c6f5 | 23 | * @brief コンストラクタ |
r113330akki | 1:3d1e7763c6f5 | 24 | * @param[in] sda i2c通信に使うsdaピンの指定 |
r113330akki | 1:3d1e7763c6f5 | 25 | * @param[in] scl i2c通信に使うsclピンの指定 |
r113330akki | 1:3d1e7763c6f5 | 26 | * @param[in] addr EEPROMのピンの状態によって変わるアドレス。省略で0(すべて開放もしもしくはGND) |
r113330akki | 1:3d1e7763c6f5 | 27 | */ |
r113330akki | 3:8957e88b3334 | 28 | |
r113330akki | 1:3d1e7763c6f5 | 29 | AT24C1024B(PinName sda, PinName scl, int addr); |
r113330akki | 1:3d1e7763c6f5 | 30 | AT24C1024B(PinName sda, PinName scl); |
r113330akki | 1:3d1e7763c6f5 | 31 | AT24C1024B(I2C device, int addr); |
r113330akki | 1:3d1e7763c6f5 | 32 | AT24C1024B(I2C device); |
r113330akki | 3:8957e88b3334 | 33 | //@} |
r113330akki | 1:3d1e7763c6f5 | 34 | |
r113330akki | 3:8957e88b3334 | 35 | /** |
r113330akki | 1:3d1e7763c6f5 | 36 | * @brief 1バイト分のデータをEEPROMに書き込むための関数 |
r113330akki | 0:b6847bb172b4 | 37 | * @param[in] addr どのアドレスに書き込むか指定 |
r113330akki | 0:b6847bb172b4 | 38 | * @param[in] page どのページに書き込むか指定 |
r113330akki | 0:b6847bb172b4 | 39 | * @param[in] data 書き込むデータ |
r113330akki | 0:b6847bb172b4 | 40 | * @return int エラーが発生したかを確認するためのもの |
r113330akki | 0:b6847bb172b4 | 41 | * @details 正常終了したら0を返す。 |
r113330akki | 0:b6847bb172b4 | 42 | */ |
r113330akki | 1:3d1e7763c6f5 | 43 | int set_i2c_address(int addr, int page=0); |
r113330akki | 1:3d1e7763c6f5 | 44 | int set_i2c_address(int A0, int A1, int page=0); |
r113330akki | 1:3d1e7763c6f5 | 45 | |
r113330akki | 3:8957e88b3334 | 46 | /** |
r113330akki | 1:3d1e7763c6f5 | 47 | * @brief データをEEPROMに書き込むための関数 |
r113330akki | 1:3d1e7763c6f5 | 48 | * @param[in] addr どのアドレスから書き込むか指定 |
r113330akki | 0:b6847bb172b4 | 49 | * @param[in] page どのページに書き込むか指定 |
r113330akki | 0:b6847bb172b4 | 50 | * @param[in] data 書き込むデータ |
r113330akki | 1:3d1e7763c6f5 | 51 | * @param[in] *data 書き込むデータの配列 |
r113330akki | 1:3d1e7763c6f5 | 52 | * @param[in] length 書き込むデータの長さ |
r113330akki | 0:b6847bb172b4 | 53 | * @return int エラーが発生したかを確認するためのもの |
r113330akki | 1:3d1e7763c6f5 | 54 | * @details 内部で連続書き込みの関数を使用している。 |
r113330akki | 1:3d1e7763c6f5 | 55 | * 正常終了したら0を返す。 |
r113330akki | 1:3d1e7763c6f5 | 56 | * lengthが1未満だと-1を返す。 |
r113330akki | 1:3d1e7763c6f5 | 57 | * *dataは連続している必要がある |
r113330akki | 0:b6847bb172b4 | 58 | */ |
r113330akki | 1:3d1e7763c6f5 | 59 | int write(int addr, int page, char data); |
r113330akki | 0:b6847bb172b4 | 60 | int write(int addr, int page, char *data, int length); |
r113330akki | 0:b6847bb172b4 | 61 | /** |
r113330akki | 0:b6847bb172b4 | 62 | * @brief 1バイト分データをEEPROMに書き込むための関数 |
r113330akki | 0:b6847bb172b4 | 63 | * @param[in] addr どのアドレスに書き込むか指定 |
r113330akki | 0:b6847bb172b4 | 64 | * @param[in] page どのページに書き込むか指定 |
r113330akki | 0:b6847bb172b4 | 65 | * @param[in] data 書き込むデータ |
r113330akki | 0:b6847bb172b4 | 66 | * @return int エラーが発生したかを確認するためのもの |
r113330akki | 0:b6847bb172b4 | 67 | * @details 正常終了したら0を返す。 |
r113330akki | 0:b6847bb172b4 | 68 | */ |
r113330akki | 0:b6847bb172b4 | 69 | int read(int addr, int page); |
r113330akki | 0:b6847bb172b4 | 70 | int read(int addr, int page, char *data, int length); |
r113330akki | 1:3d1e7763c6f5 | 71 | private: |
r113330akki | 1:3d1e7763c6f5 | 72 | PinName SDA; |
r113330akki | 1:3d1e7763c6f5 | 73 | PinName SCL; |
r113330akki | 1:3d1e7763c6f5 | 74 | I2C i2c; |
r113330akki | 1:3d1e7763c6f5 | 75 | int ADDRESS; |
r113330akki | 1:3d1e7763c6f5 | 76 | }; |
r113330akki | 0:b6847bb172b4 | 77 | |
r113330akki | 0:b6847bb172b4 | 78 | #endif |