Домашняя страница библиотеки_c AVR

Синтаксис языка C

Библиотека языка C GNU glibc

 Страницы развития библиотеки_с AVR

Главная страница

Инструкция пользователя

Содержание библиотеки_c

Часто задаваемые вопросы

Содержание по алфавиту

Демонстрационные проекты


<util/twi.h>: TWI (I2C) определения.

Детальное Описание

 #include <util/twi.h> 

Этот header файл подключает определения для использования интерфейса TWI.

TWSR значения

Мнемоника:
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 бит в SLA+R/W адресном поле.

#define 

TW_READ   1

#define 

TW_WRITE   0

 

Документация макроопределений

#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

Значение:

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

Ниже 3 бита из TWSR зарезервированы на ATmega163.   2 LSB перенос бит предделителя на более новых Atmega-х.

#define TW_WRITE   0

SLA+W адрес

Hosted by uCoz