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

Revision:
1:3d1e7763c6f5
Parent:
0:b6847bb172b4
Child:
2:d5b47e80c76c
--- a/at24c1024b.h	Mon Dec 11 07:20:30 2017 +0000
+++ b/at24c1024b.h	Wed Dec 13 04:52:34 2017 +0000
@@ -8,6 +8,9 @@
 #define __AT24C1024B_H__
 
 #include "mbed.h"
+
+static const int AT24C1024B_ADDRESS = 0xa0;
+
 /**
 * @brief AT24C1024Bの機能をまとめたクラス
 * @details
@@ -16,22 +19,42 @@
 {
 public:
     /**
-    * @brief 1バイト分データをEEPROMに書き込むための関数
+    * @brief コンストラクタ
+    * @param[in] sda i2c通信に使うsdaピンの指定
+    * @param[in] scl i2c通信に使うsclピンの指定
+    * @param[in] addr EEPROMのピンの状態によって変わるアドレス。省略で0(すべて開放もしもしくはGND)
+    */
+    AT24C1024B(PinName sda, PinName scl, int addr);
+    AT24C1024B(PinName sda, PinName scl);
+    AT24C1024B(I2C device, int addr);
+    AT24C1024B(I2C device);
+    
+    
+    /**
+    * @brief 1バイト分のデータをEEPROMに書き込むための関数
     * @param[in] addr どのアドレスに書き込むか指定
     * @param[in] page どのページに書き込むか指定
     * @param[in] data 書き込むデータ
     * @return int エラーが発生したかを確認するためのもの
     * @details 正常終了したら0を返す。
     */
-    int write(int addr, int page, char data);
+    int set_i2c_address(int addr, int page=0);
+    int set_i2c_address(int A0, int A1, int page=0);
+    
     /**
-    * @brief 1バイト分データをEEPROMに書き込むための関数
-    * @param[in] addr どのアドレスに書き込むか指定
+    * @brief データをEEPROMに書き込むための関数
+    * @param[in] addr どのアドレスから書き込むか指定
     * @param[in] page どのページに書き込むか指定
     * @param[in] data 書き込むデータ
+    * @param[in] *data 書き込むデータの配列
+    * @param[in] length 書き込むデータの長さ
     * @return int エラーが発生したかを確認するためのもの
-    * @details 正常終了したら0を返す。
+    * @details 内部で連続書き込みの関数を使用している。
+    * 正常終了したら0を返す。
+    * lengthが1未満だと-1を返す。
+    * *dataは連続している必要がある
     */
+    int write(int addr, int page, char data);
     int write(int addr, int page, char *data, int length);
     /**
     * @brief 1バイト分データをEEPROMに書き込むための関数
@@ -42,15 +65,12 @@
     * @details 正常終了したら0を返す。
     */
     int read(int addr, int page);
-    /**
-    * @brief 1バイト分データをEEPROMに書き込むための関数
-    * @param[in] addr どのアドレスに書き込むか指定
-    * @param[in] page どのページに書き込むか指定
-    * @param[in] data 書き込むデータ
-    * @return int エラーが発生したかを確認するためのもの
-    * @details 正常終了したら0を返す。
-    */
     int read(int addr, int page, char *data, int length);
-}
+private:
+    PinName SDA;
+    PinName SCL;
+    I2C i2c;
+    int ADDRESS;
+};
 
 #endif
\ No newline at end of file