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は出ない。 |