avr-libc  2.0.0
Standard C library for AVR-GCC

AVR Libc Home Page

AVRs

AVR Libc Development Pages

Main Page

User Manual

Library Reference

FAQ

Example Projects

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

TWSR 値

ニーモニック:
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 ビット

#define TW_READ   1
 
#define TW_WRITE   0
 

説明詳細

#include <util/twi.h>

このヘッダファイルは、AVR TWIインタフェースを使用するためのビットマスク定義が含まれています。

マクロ定義説明

#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 か data中に調停に失敗

#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)

TW_STATUS_MASKでマスクされたTWSR

#define TW_STATUS_MASK
値:
(_BV(TWS7)|_BV(TWS6)|_BV(TWS5)|_BV(TWS4)|\
_BV(TWS3))
#define _BV(bit)
Definition: sfr_defs.h:208

TWSRの下位3ビットは、ATmega163上で予約されています。 新しいATmegasでは、2 LSBをプリスケーラビットに使用します。

#define TW_WRITE   0

SLA+Wアドレス