![]() |
LUFA Library
120219
|
TWI Peripheral Driver (AVR8) More...
Defines | |
#define | TWI_ADDRESS_READ 0x01 |
#define | TWI_ADDRESS_WRITE 0x00 |
#define | TWI_DEVICE_ADDRESS_MASK 0xFE |
#define | TWI_BIT_PRESCALE_1 ((0 << TWPS1) | (0 << TWPS0)) |
#define | TWI_BIT_PRESCALE_4 ((0 << TWPS1) | (1 << TWPS0)) |
#define | TWI_BIT_PRESCALE_16 ((1 << TWPS1) | (0 << TWPS0)) |
#define | TWI_BIT_PRESCALE_64 ((1 << TWPS1) | (1 << TWPS0)) |
#define | TWI_BITLENGTH_FROM_FREQ(Prescale, Frequency) ((((F_CPU / (Prescale)) / (Frequency)) - 16) / 2) |
Enumerations | |
enum | TWI_ErrorCodes_t { TWI_ERROR_NoError = 0, TWI_ERROR_BusFault = 1, TWI_ERROR_BusCaptureTimeout = 2, TWI_ERROR_SlaveResponseTimeout = 3, TWI_ERROR_SlaveNotReady = 4, TWI_ERROR_SlaveNAK = 5 } |
Functions | |
static void | TWI_Init (const uint8_t Prescale, const uint8_t BitLength) ATTR_ALWAYS_INLINE |
static void | TWI_Disable (void) ATTR_ALWAYS_INLINE |
static void | TWI_StopTransmission (void) ATTR_ALWAYS_INLINE |
uint8_t | TWI_StartTransmission (const uint8_t SlaveAddress, const uint8_t TimeoutMS) |
bool | TWI_SendByte (const uint8_t Byte) |
bool | TWI_ReceiveByte (uint8_t *const Byte, const bool LastByte) ATTR_NON_NULL_PTR_ARG(1) |
uint8_t | TWI_ReadPacket (const uint8_t SlaveAddress, const uint8_t TimeoutMS, const uint8_t *InternalAddress, uint8_t InternalAddressLen, uint8_t *Buffer, uint8_t Length) ATTR_NON_NULL_PTR_ARG(3) |
uint8_t | TWI_WritePacket (const uint8_t SlaveAddress, const uint8_t TimeoutMS, const uint8_t *InternalAddress, uint8_t InternalAddressLen, const uint8_t *Buffer, uint8_t Length) ATTR_NON_NULL_PTR_ARG(3) |
On-chip TWI driver for the 8-bit AVR microcontrollers.