---
name: "util_twi"
section: "3avr"
platform: "linux"
package: "avr-libc"
version: "1:2.2.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/util_twi"
---

# util\_twi(3avr)

\<util/twi.h\>: TWI bit mask definitions

## NAME

util\_twi - \<util/twi.h\>: TWI bit mask definitions

## SYNOPSIS

### TWSR values

Mnemonics: \
 TW\_MT\_xxx - master transmitter \
 TW\_MR\_xxx - master receiver \
 TW\_ST\_xxx - slave transmitter \
 TW\_SR\_xxx - slave receiver  #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**)\

### R/~W bit in SLA+R/W address field.

\#define **TW\_READ**   1\
 \#define **TW\_WRITE**   0\

## Detailed Description

```
#include <util/twi.h>
```

This header file contains bit mask definitions for use with the AVR TWI interface.

## Macro Definition Documentation

### #define TW\_BUS\_ERROR 0x00

illegal start or stop condition

### #define TW\_MR\_ARB\_LOST 0x38

arbitration lost in SLA+R or NACK

### #define TW\_MR\_DATA\_ACK 0x50

data received, ACK returned

### #define TW\_MR\_DATA\_NACK 0x58

data received, NACK returned

### #define TW\_MR\_SLA\_ACK 0x40

SLA+R transmitted, ACK received

### #define TW\_MR\_SLA\_NACK 0x48

SLA+R transmitted, NACK received

### #define TW\_MT\_ARB\_LOST 0x38

arbitration lost in SLA+W or data

### #define TW\_MT\_DATA\_ACK 0x28

data transmitted, ACK received

### #define TW\_MT\_DATA\_NACK 0x30

data transmitted, NACK received

### #define TW\_MT\_SLA\_ACK 0x18

SLA+W transmitted, ACK received

### #define TW\_MT\_SLA\_NACK 0x20

SLA+W transmitted, NACK received

### #define TW\_NO\_INFO 0xF8

no state information available

### #define TW\_READ 1

SLA+R address

### #define TW\_REP\_START 0x10

repeated start condition transmitted

### #define TW\_SR\_ARB\_LOST\_GCALL\_ACK 0x78

arbitration lost in SLA+RW, general call received, ACK returned

### #define TW\_SR\_ARB\_LOST\_SLA\_ACK 0x68

arbitration lost in SLA+RW, SLA+W received, ACK returned

### #define TW\_SR\_DATA\_ACK 0x80

data received, ACK returned

### #define TW\_SR\_DATA\_NACK 0x88

data received, NACK returned

### #define TW\_SR\_GCALL\_ACK 0x70

general call received, ACK returned

### #define TW\_SR\_GCALL\_DATA\_ACK 0x90

general call data received, ACK returned

### #define TW\_SR\_GCALL\_DATA\_NACK 0x98

general call data received, NACK returned

### #define TW\_SR\_SLA\_ACK 0x60

SLA+W received, ACK returned

### #define TW\_SR\_STOP 0xA0

stop or repeated start condition received while selected

### #define TW\_ST\_ARB\_LOST\_SLA\_ACK 0xB0

arbitration lost in SLA+RW, SLA+R received, ACK returned

### #define TW\_ST\_DATA\_ACK 0xB8

data transmitted, ACK received

### #define TW\_ST\_DATA\_NACK 0xC0

data transmitted, NACK received

### #define TW\_ST\_LAST\_DATA 0xC8

last data byte transmitted, ACK received

### #define TW\_ST\_SLA\_ACK 0xA8

SLA+R received, ACK returned

### #define TW\_START 0x08

start condition transmitted

### #define TW\_STATUS (TWSR & TW\_STATUS\_MASK)

TWSR, masked by TW\_STATUS\_MASK

### #define TW\_STATUS\_MASK

**Value:**.PP

```
                (_BV(TWS7)|_BV(TWS6)|_BV(TWS5)|_BV(TWS4)|\
                _BV(TWS3))
```

The lower 3 bits of TWSR are reserved on the ATmega163. The 2 LSB carry the prescaler bits on the newer ATmegas.

### #define TW\_WRITE 0

SLA+W address

## Author

Generated automatically by Doxygen for AVR-LibC from the source code.
