TwiceAsNice  2019-02-18
Macros | Functions | Variables
twi.c File Reference
#include <math.h>
#include <stdlib.h>
#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <compat/twi.h>
#include "Arduino.h"
#include "pins_arduino.h"
#include "twi.h"
Include dependency graph for twi.c:

Macros

#define cbi(sfr, bit)   (_SFR_BYTE(sfr) &= ~_BV(bit))
 
#define sbi(sfr, bit)   (_SFR_BYTE(sfr) |= _BV(bit))
 

Functions

void twi_init (void)
 
void twi_disable (void)
 
void twi_setAddress (uint8_t address)
 
void twi_setFrequency (uint32_t frequency)
 
uint8_t twi_readFrom (uint8_t address, uint8_t *data, uint8_t length, uint8_t sendStop)
 
uint8_t twi_writeTo (uint8_t address, uint8_t *data, uint8_t length, uint8_t wait, uint8_t sendStop)
 
uint8_t twi_transmit (const uint8_t *data, uint8_t length)
 
void twi_attachSlaveRxEvent (void(*function)(uint8_t *, int))
 
void twi_attachSlaveTxEvent (void(*function)(void))
 
void twi_reply (uint8_t ack)
 
void twi_stop (void)
 
void twi_releaseBus (void)
 
 ISR (TWI_vect)
 

Variables

static volatile uint8_t twi_state
 
static volatile uint8_t twi_slarw
 
static volatile uint8_t twi_sendStop
 
static volatile uint8_t twi_inRepStart
 
static void(* twi_onSlaveTransmit )(void)
 
static void(* twi_onSlaveReceive )(uint8_t *, int)
 
static uint8_t twi_masterBuffer [TWI_BUFFER_LENGTH]
 
static volatile uint8_t twi_masterBufferIndex
 
static volatile uint8_t twi_masterBufferLength
 
static uint8_t twi_txBuffer [TWI_BUFFER_LENGTH]
 
static volatile uint8_t twi_txBufferIndex
 
static volatile uint8_t twi_txBufferLength
 
static uint8_t twi_rxBuffer [TWI_BUFFER_LENGTH]
 
static volatile uint8_t twi_rxBufferIndex
 
static volatile uint8_t twi_error
 

Macro Definition Documentation

◆ cbi

#define cbi (   sfr,
  bit 
)    (_SFR_BYTE(sfr) &= ~_BV(bit))

◆ sbi

#define sbi (   sfr,
  bit 
)    (_SFR_BYTE(sfr) |= _BV(bit))

Function Documentation

◆ ISR()

ISR ( TWI_vect  )

◆ twi_attachSlaveRxEvent()

void twi_attachSlaveRxEvent ( void(*)(uint8_t *, int)  function)

◆ twi_attachSlaveTxEvent()

void twi_attachSlaveTxEvent ( void(*)(void)  function)

◆ twi_disable()

void twi_disable ( void  )

◆ twi_init()

void twi_init ( void  )

◆ twi_readFrom()

uint8_t twi_readFrom ( uint8_t  address,
uint8_t data,
uint8_t  length,
uint8_t  sendStop 
)

◆ twi_releaseBus()

void twi_releaseBus ( void  )

◆ twi_reply()

void twi_reply ( uint8_t  ack)

◆ twi_setAddress()

void twi_setAddress ( uint8_t  address)

◆ twi_setFrequency()

void twi_setFrequency ( uint32_t  frequency)

◆ twi_stop()

void twi_stop ( void  )

◆ twi_transmit()

uint8_t twi_transmit ( const uint8_t data,
uint8_t  length 
)

◆ twi_writeTo()

uint8_t twi_writeTo ( uint8_t  address,
uint8_t data,
uint8_t  length,
uint8_t  wait,
uint8_t  sendStop 
)

Variable Documentation

◆ twi_error

volatile uint8_t twi_error
static

◆ twi_inRepStart

volatile uint8_t twi_inRepStart
static

◆ twi_masterBuffer

uint8_t twi_masterBuffer[TWI_BUFFER_LENGTH]
static

◆ twi_masterBufferIndex

volatile uint8_t twi_masterBufferIndex
static

◆ twi_masterBufferLength

volatile uint8_t twi_masterBufferLength
static

◆ twi_onSlaveReceive

void(* twi_onSlaveReceive) (uint8_t *, int)
static

◆ twi_onSlaveTransmit

void(* twi_onSlaveTransmit) (void)
static

◆ twi_rxBuffer

uint8_t twi_rxBuffer[TWI_BUFFER_LENGTH]
static

◆ twi_rxBufferIndex

volatile uint8_t twi_rxBufferIndex
static

◆ twi_sendStop

volatile uint8_t twi_sendStop
static

◆ twi_slarw

volatile uint8_t twi_slarw
static

◆ twi_state

volatile uint8_t twi_state
static

◆ twi_txBuffer

uint8_t twi_txBuffer[TWI_BUFFER_LENGTH]
static

◆ twi_txBufferIndex

volatile uint8_t twi_txBufferIndex
static

◆ twi_txBufferLength

volatile uint8_t twi_txBufferLength
static