|
RXduino
1.20a
RXduinoマニュアル 最終更新日 平成26年6月29日
|
2線式シリアルインタフェース(Wire または I2Cと呼ばれる)を扱うためのライブラリ。
このライブラリは tkdn_i2c.h で定義されたライブラリをC++でラッパしたものである。
このライブラリを使うにはリンカオプションで -lwire を指定する。
[詳細]
#include <wire.h>
Public メソッド | |
| TwoWire () | |
| コンストラクタ。Wireクラスのオブジェクトを作成する。 [詳細] | |
| void | assignSdaScl (int sda_pin, int scl_pin) |
| SDA,SCLピンの割り当て任意のピンに変更する [詳細] | |
| void | begin () |
| I2Cマスターとして初期化する [詳細] | |
| void | begin (int address) |
| I2Cスレーブとして初期化する [詳細] | |
| int | requestFrom (unsigned char address, int count) |
| I2Cデバイスに対して受信シーケンスを発行し、データを読み出す [詳細] | |
| int | available () |
| 受信バッファ内に溜まっているデータ数を調べる [詳細] | |
| int | read () |
| 受信バッファからデータを1バイト取り出す [詳細] | |
| void | beginTransmission (unsigned char address) |
| I2Cデバイスに対して送信を開始するための準備をする [詳細] | |
| int | write (unsigned char data) |
| 送信バッファの末尾に1バイトのデータを追加する [詳細] | |
| int | write (int data) |
| 送信バッファの末尾に数値を追加する [詳細] | |
| int | write (char *str) |
| 送信バッファの末尾に文字列送信を追加する [詳細] | |
| int | write (unsigned char *data, int quantity) |
| 送信バッファの末尾にデータブロックを追加する [詳細] | |
| unsigned char | endTransmission () |
| ターゲットデバイスに対してI2Cの送信シーケンスを発行する [詳細] | |
| void | setFrequency (int freq) |
| I2Cの周波数を変更する [詳細] | |
Static Public メソッド | |
| static unsigned long | getVersion (version_info *vi) |
| ライブラリのバージョン情報を取得する [詳細] | |
2線式シリアルインタフェース(Wire または I2Cと呼ばれる)を扱うためのライブラリ。
このライブラリは tkdn_i2c.h で定義されたライブラリをC++でラッパしたものである。
このライブラリを使うにはリンカオプションで -lwire を指定する。
| TwoWire::TwoWire | ( | ) |
コンストラクタ。Wireクラスのオブジェクトを作成する。
デフォルトではSDA=AN4番ピン(P44)、SCL=AN5番ピン(P45)に割り当てられる(Arduinoと同じ)。
RXduinoではピン番号は assignSdaScl() で変更できる。
|
static |
ライブラリのバージョン情報を取得する
| [out] | vi | 拡張情報が必要ならばversion_info構造体へのポインタを与える。 構造体の各フィールドがセットされて戻る。各フィールドは文字列へのポインタだが、 static constな文字列を指すので、ユーザプログラムでfreeしてはならない。 拡張情報が不要ならばNULLを指定してもよい |
| void TwoWire::assignSdaScl | ( | int | sda_pin, |
| int | scl_pin | ||
| ) |
SDA,SCLピンの割り当て任意のピンに変更する
| sda_pin | SDA(データ端子)のピンの番号。任意のピンが使用できる。 |
| scl_pin | SCL(クロック端子)のピンの番号。任意のピンが使用できる。 |
| void TwoWire::begin | ( | ) |
I2Cマスターとして初期化する
| void TwoWire::begin | ( | int | address | ) |
| int TwoWire::requestFrom | ( | unsigned char | address, |
| int | count | ||
| ) |
I2Cデバイスに対して受信シーケンスを発行し、データを読み出す
読み出したデータ数は available() 関数で確認する。バッファ中のデータは read() 関数で読み出す。
| address | ターゲットデバイスのアドレス(7bit) RD/WRを示すビットは含まず、0~0x7Fまでの純粋なアドレスを与えること。 |
| count | 読み出したいデータのバイト数。範囲は0~260。260以上の値を指定した場合は260に切り捨てられる。 |
| int TwoWire::available | ( | ) |
受信バッファ内に溜まっているデータ数を調べる
| int TwoWire::read | ( | ) |
受信バッファからデータを1バイト取り出す
| void TwoWire::beginTransmission | ( | unsigned char | address | ) |
I2Cデバイスに対して送信を開始するための準備をする
| address | ターゲットデバイスのアドレス(7bit) RD/WRを示すビットは含まず、0~0x7Fまでの純粋なアドレスを与えること。 |
| int TwoWire::write | ( | unsigned char | data | ) |
送信バッファの末尾に1バイトのデータを追加する
| data | 送信したいデータ |
| int TwoWire::write | ( | int | data | ) |
送信バッファの末尾に数値を追加する
| data | 送信したいデータ |
| int TwoWire::write | ( | char * | str | ) |
送信バッファの末尾に文字列送信を追加する
| str | 送信したい文字列 |
| int TwoWire::write | ( | unsigned char * | data, |
| int | quantity | ||
| ) |
送信バッファの末尾にデータブロックを追加する
| data | 送信したいデータ |
| quantity | 送信したいデータ数 |
| unsigned char TwoWire::endTransmission | ( | ) |
ターゲットデバイスに対してI2Cの送信シーケンスを発行する
I2Cの送信はこの関数を実行して初めて実際に行われる。
送信されるターゲットアドレスは beginTransmission() 関数で指定したもの。 送信データは write() 関数でバッファに格納されたもの。
| void TwoWire::setFrequency | ( | int | freq | ) |
I2Cの周波数を変更する
空ループで測っている。タイマを使ってキャリブレーションしているので、それなりに正確な値が出るはず。
| [in] | freq | クロックの周波数をHz単位で指定する。有効な値は1~200000程度。基本的にソフトでやっているので400kHzは出ない。 |
1.8.5