AT24C1024の機能を簡単に使えるようにするライブラリー

Committer:
r113330akki
Date:
Wed Dec 13 05:23:42 2017 +0000
Revision:
3:8957e88b3334
Parent:
2:d5b47e80c76c
doxygen???; ; ????????????

Who changed what in which revision?

UserRevisionLine numberNew 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