AVR Libc Home Page AVRs AVR Libc Development Pages
Main Page FAQ Library Reference Additional Documentation Example Projects

<util/twi.h>: TWI ビットマスク定義


Detailed Description

 #include <util/twi.h> 

このヘッダファイルはAVR TWI インタフェース(いわゆるI2C)のためのビットマスクが定義されています。


TWSR values

Mnemonics:
TW_MT_xxx - マスター送信
TW_MR_xxx - マスター受信
TW_ST_xxx - スレーブ送信
TW_SR_xxx - スレーブ受信

#define TW_START   0x08
#define TW_REP_START   0x10
#define TW_MT_SLA_ACK   0x18
#define TW_MT_SLA_NACK   0x20
#define TW_MT_DATA_ACK   0x28
#define TW_MT_DATA_NACK   0x30
#define TW_MT_ARB_LOST   0x38
#define TW_MR_ARB_LOST   0x38
#define TW_MR_SLA_ACK   0x40
#define TW_MR_SLA_NACK   0x48
#define TW_MR_DATA_ACK   0x50
#define TW_MR_DATA_NACK   0x58
#define TW_ST_SLA_ACK   0xA8
#define TW_ST_ARB_LOST_SLA_ACK   0xB0
#define TW_ST_DATA_ACK   0xB8
#define TW_ST_DATA_NACK   0xC0
#define TW_ST_LAST_DATA   0xC8
#define TW_SR_SLA_ACK   0x60
#define TW_SR_ARB_LOST_SLA_ACK   0x68
#define TW_SR_GCALL_ACK   0x70
#define TW_SR_ARB_LOST_GCALL_ACK   0x78
#define TW_SR_DATA_ACK   0x80
#define TW_SR_DATA_NACK   0x88
#define TW_SR_GCALL_DATA_ACK   0x90
#define TW_SR_GCALL_DATA_NACK   0x98
#define TW_SR_STOP   0xA0
#define TW_NO_INFO   0xF8
#define TW_BUS_ERROR   0x00
#define TW_STATUS_MASK
#define TW_STATUS   (TWSR & TW_STATUS_MASK)

SLA+R/W アドレスフィールド内のR/~W bit

#define TW_READ   1
#define TW_WRITE   0


Define Documentation

#define TW_BUS_ERROR   0x00
 

不正なスタートコンディションまたは不正なストップコンディション

#define TW_MR_ARB_LOST   0x38
 

SLA+R またはNACKにおいて他のマスターに調停で破れた

#define TW_MR_DATA_ACK   0x50
 

データが受信され、ACKを受け取った

#define TW_MR_DATA_NACK   0x58
 

データが受信され、NACKを受け取った

#define TW_MR_SLA_ACK   0x40
 

SLA+R を送信し、ACKを受け取った

#define TW_MR_SLA_NACK   0x48
 

SLA+R を送信し、NACKを受け取った

#define TW_MT_ARB_LOST   0x38
 

SLA+W またはデータ送信において他のマスターに調停で破れた

#define TW_MT_DATA_ACK   0x28
 

データ送信完了、ACKを受け取った

#define TW_MT_DATA_NACK   0x30
 

データ送信完了、NACKを受け取った

#define TW_MT_SLA_ACK   0x18
 

SLA+W 送信完了、ACKを受け取った

#define TW_MT_SLA_NACK   0x20
 

SLA+W 送信完了、NACKを受け取った

#define TW_NO_INFO   0xF8
 

ステート情報が得られない

#define TW_READ   1
 

アドレスパケット最下位ビット、SLA+Rを表す

#define TW_REP_START   0x10
 

再送開始条件が送信された

#define TW_SR_ARB_LOST_GCALL_ACK   0x78
 

SLA+RW(アドレスパケット)で調停に破れた。
一斉呼び出しコールを受信し、ACKを送った

#define TW_SR_ARB_LOST_SLA_ACK   0x68
 

SLA+RW(アドレスパケット)で調停に破れた。
自分あてのSLA+W が受信されACKを送った

#define TW_SR_DATA_ACK   0x80
 

データ受信完了、ACKを返した

#define TW_SR_DATA_NACK   0x88
 

データ受信完了、NACKを返した

#define TW_SR_GCALL_ACK   0x70
 

一斉呼び出しコールを受信し、ACKを返した

#define TW_SR_GCALL_DATA_ACK   0x90
 

一斉呼び出しコールでデータを受信し、ACKを返した

#define TW_SR_GCALL_DATA_NACK   0x98
 

一斉呼び出しコールでデータを受信し、NACKを返した

#define TW_SR_SLA_ACK   0x60
 

SLA+W を受信し、ACK を返した

#define TW_SR_STOP   0xA0
 

自身がスレーブとして選択されている間に、停止条件または再送開始条件を受け取って、通信終了となった

#define TW_ST_ARB_LOST_SLA_ACK   0xB0
 

SLA+RWで調停に破れ、 SLA+Rを受け取り、ACKを返した

#define TW_ST_DATA_ACK   0xB8
 

データを送信し、ACKを受け取った

#define TW_ST_DATA_NACK   0xC0
 

データを送信し、NACKを受け取った

#define TW_ST_LAST_DATA   0xC8
 

最終データバイトを送信し、ACKを受け取った

#define TW_ST_SLA_ACK   0xA8
 

SLA+R を受信し、ACK を返した

#define TW_START   0x08
 

開始条件を送信して成功した

#define TW_STATUS   (TWSR & TW_STATUS_MASK)
 

TWSRレジスタ値を TW_STATUS_MASKでマスクした値

#define TW_STATUS_MASK
 

Value:

(_BV(TWS7)|_BV(TWS6)|_BV(TWS5)|_BV(TWS4)|_BV(TWS3))
TWSRの下位3bitは、ATmega163では予約されている。下位2ビットは、新しいATmegaではプリスケーラ選択となっている。
#define TW_WRITE   0
 

アドレスパケット最下位ビット、SLA+W を表す


Automatically generated by Doxygen 1.4.1 on 23 Jan 2006.