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

Committer:
r113330akki
Date:
Wed Dec 13 05:05:57 2017 +0000
Revision:
2:d5b47e80c76c
Parent:
1:3d1e7763c6f5
Child:
3:8957e88b3334
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 0:b6847bb172b4 21 /**
r113330akki 1:3d1e7763c6f5 22 * @brief コンストラクタ
r113330akki 1:3d1e7763c6f5 23 * @param[in] sda i2c通信に使うsdaピンの指定
r113330akki 1:3d1e7763c6f5 24 * @param[in] scl i2c通信に使うsclピンの指定
r113330akki 1:3d1e7763c6f5 25 * @param[in] addr EEPROMのピンの状態によって変わるアドレス。省略で0(すべて開放もしもしくはGND)
r113330akki 1:3d1e7763c6f5 26 */
r113330akki 1:3d1e7763c6f5 27 AT24C1024B(PinName sda, PinName scl, int addr);
r113330akki 1:3d1e7763c6f5 28 AT24C1024B(PinName sda, PinName scl);
r113330akki 1:3d1e7763c6f5 29 AT24C1024B(I2C device, int addr);
r113330akki 1:3d1e7763c6f5 30 AT24C1024B(I2C device);
r113330akki 1:3d1e7763c6f5 31
r113330akki 1:3d1e7763c6f5 32
r113330akki 2:d5b47e80c76c 33 /**@fn set_i2c_address
r113330akki 1:3d1e7763c6f5 34 * @brief 1バイト分のデータをEEPROMに書き込むための関数
r113330akki 0:b6847bb172b4 35 * @param[in] addr どのアドレスに書き込むか指定
r113330akki 0:b6847bb172b4 36 * @param[in] page どのページに書き込むか指定
r113330akki 0:b6847bb172b4 37 * @param[in] data 書き込むデータ
r113330akki 0:b6847bb172b4 38 * @return int エラーが発生したかを確認するためのもの
r113330akki 0:b6847bb172b4 39 * @details 正常終了したら0を返す。
r113330akki 0:b6847bb172b4 40 */
r113330akki 1:3d1e7763c6f5 41 int set_i2c_address(int addr, int page=0);
r113330akki 1:3d1e7763c6f5 42 int set_i2c_address(int A0, int A1, int page=0);
r113330akki 1:3d1e7763c6f5 43
r113330akki 2:d5b47e80c76c 44 /**@fn write
r113330akki 1:3d1e7763c6f5 45 * @brief データをEEPROMに書き込むための関数
r113330akki 1:3d1e7763c6f5 46 * @param[in] addr どのアドレスから書き込むか指定
r113330akki 0:b6847bb172b4 47 * @param[in] page どのページに書き込むか指定
r113330akki 0:b6847bb172b4 48 * @param[in] data 書き込むデータ
r113330akki 1:3d1e7763c6f5 49 * @param[in] *data 書き込むデータの配列
r113330akki 1:3d1e7763c6f5 50 * @param[in] length 書き込むデータの長さ
r113330akki 0:b6847bb172b4 51 * @return int エラーが発生したかを確認するためのもの
r113330akki 1:3d1e7763c6f5 52 * @details 内部で連続書き込みの関数を使用している。
r113330akki 1:3d1e7763c6f5 53 * 正常終了したら0を返す。
r113330akki 1:3d1e7763c6f5 54 * lengthが1未満だと-1を返す。
r113330akki 1:3d1e7763c6f5 55 * *dataは連続している必要がある
r113330akki 0:b6847bb172b4 56 */
r113330akki 1:3d1e7763c6f5 57 int write(int addr, int page, char data);
r113330akki 0:b6847bb172b4 58 int write(int addr, int page, char *data, int length);
r113330akki 0:b6847bb172b4 59 /**
r113330akki 0:b6847bb172b4 60 * @brief 1バイト分データをEEPROMに書き込むための関数
r113330akki 0:b6847bb172b4 61 * @param[in] addr どのアドレスに書き込むか指定
r113330akki 0:b6847bb172b4 62 * @param[in] page どのページに書き込むか指定
r113330akki 0:b6847bb172b4 63 * @param[in] data 書き込むデータ
r113330akki 0:b6847bb172b4 64 * @return int エラーが発生したかを確認するためのもの
r113330akki 0:b6847bb172b4 65 * @details 正常終了したら0を返す。
r113330akki 0:b6847bb172b4 66 */
r113330akki 0:b6847bb172b4 67 int read(int addr, int page);
r113330akki 0:b6847bb172b4 68 int read(int addr, int page, char *data, int length);
r113330akki 1:3d1e7763c6f5 69 private:
r113330akki 1:3d1e7763c6f5 70 PinName SDA;
r113330akki 1:3d1e7763c6f5 71 PinName SCL;
r113330akki 1:3d1e7763c6f5 72 I2C i2c;
r113330akki 1:3d1e7763c6f5 73 int ADDRESS;
r113330akki 1:3d1e7763c6f5 74 };
r113330akki 0:b6847bb172b4 75
r113330akki 0:b6847bb172b4 76 #endif