DRV_I2C_BUFFER_EVENT

Harmony Ver 1.07.01で記述

目次

概要

I2C通信の状態を表す列挙体.
コールバック()に指定する場合は,指定した状態になった時にコールバック関数を呼び出す.
ポーリング()で読みだした場合は,転送状態を確認できる.

定義

typedef enum
{
	DRV_I2C_BUFFER_EVENT_PENDING,
	DRV_I2C_BUFFER_EVENT_COMPLETE,
	DRV_I2C_BUFFER_EVENT_ERROR,
	DRV_I2C_SEND_STOP_EVENT,
	DRV_I2C_SEND_RESTART_EVENT,
	DRV_I2C_BUFFER_SLAVE_READ_REQUESTED,
	DRV_I2C_BUFFER_SLAVE_WRITE_REQUESTED,
	DRV_I2C_BUFFER_SLAVE_READ_BYTE,
	DRV_I2C_BUFFER_MASTER_ACK_SEND,
	DRV_I2C_BUFFER_MASTER_NACK_SEND,
	DRV_I2C_BUFFER_SLAVE_WRITE_BYTE
} DRV_I2C_BUFFER_EVENT;

メンバ

DRV_I2C_BUFFER_EVENT_PENDINGバッファの処理は保留されている(おおよそ,送信にまだ手が付けられていない状態)
DRV_I2C_BUFFER_EVENT_COMPLETEバッファ中のすべてのデータが正常に転送された
DRV_I2C_BUFFER_EVENT_ERRORバッファ内転送中にエラーが発生した
DRV_I2C_SEND_STOP_EVENTドライバはブロック状態になり,処理完了で返ってくる(処理完了までドライバ関数で待機する)
※I2Cではブロッキング動作にならないような気がする
DRV_I2C_SEND_RESTART_EVENTマスターが「Stop」を送った
DRV_I2C_BUFFER_SLAVE_READ_REQUESTEDマスターが「Restart」を送った
DRV_I2C_BUFFER_SLAVE_WRITE_REQUESTEDマスターがスレーブにデータを送信する
DRV_I2C_BUFFER_SLAVE_READ_BYTEマスターがスレーブにデータ要求する
DRV_I2C_BUFFER_MASTER_ACK_SENDマスターがスレーブにACKを送信し,次のデータを要求する
DRV_I2C_BUFFER_MASTER_NACK_SENDマスターがスレーブにNACKを送信し,次のデータを要求しない
DRV_I2C_BUFFER_SLAVE_WRITE_BYTEスレーブがマスターにデータを送信する

備考

これらの値はフラグとして使用でき,それぞれをOR(”|”)して,組み合わせて使用できる.

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

この記事を書いた人

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次