Microchip® Advanced Software Framework

twim.c File Reference
#include "twim.h"

Functions

 ISR (twim_master_interrupt_handler, CONF_TWIM_IRQ_GROUP, CONF_TWIM_IRQ_LEVEL)
 TWI interrupt handler. More...
 
status_code_t twim_chained_transfer (volatile avr32_twim_t *twim, volatile twim_transfer_t *first, volatile twim_transfer_t *second, bool tenbit)
 Perform Chained transfers to a TWI compatible slave device. More...
 
void twim_disable_interrupt (volatile avr32_twim_t *twim)
 Disable the TWI interrupts and clear its status register. More...
 
status_code_t twim_master_init (volatile avr32_twim_t *twim, const twim_options_t *opt)
 Initialize the twi master module. More...
 
status_code_t twim_probe (volatile avr32_twim_t *twim, uint32_t chip_addr)
 Test if a chip answers for a given twi address. More...
 
status_code_t twim_read (volatile avr32_twim_t *twim, uint8_t *buffer, uint32_t nbytes, uint32_t saddr, bool tenbit)
 Read multiple bytes from a TWI compatible slave device. More...
 
status_code_t twim_read_packet (volatile avr32_twim_t *twim, const twim_package_t *package)
 Read multiple bytes from a TWI compatible slave device. More...
 
status_code_t twim_set_speed (volatile avr32_twim_t *twim, uint32_t speed, uint32_t pba_hz)
 Set the twim bus speed in conjunction with the clock frequency. More...
 
uint8_t twim_status (void)
 Information about the current status of the TWI Bus. More...
 
status_code_t twim_write (volatile avr32_twim_t *twim, uint8_t const *buffer, uint32_t nbytes, uint32_t saddr, bool tenbit)
 Write multiple bytes to a TWI compatible slave device. More...
 
status_code_t twim_write_packet (volatile avr32_twim_t *twim, const twim_package_t *package)
 Write multiple bytes to a TWI compatible slave device. More...
 

Variables

static volatile
twim_transfer_status_t 
transfer_status
 
static volatile avr32_twim_t * twim_inst
 
static volatile uint32_t twim_it_mask
 
static volatile bool twim_next =false
 
static volatile const
twim_package_t
twim_package
 
static volatile uint8_t * twim_rx_data = NULL
 
static volatile uint32_t twim_rx_nb_bytes = 0
 
static const volatile uint8_t * twim_tx_data = NULL
 
static volatile uint32_t twim_tx_nb_bytes = 0
 

volatile twim_transfer_status_t transfer_status
static
volatile avr32_twim_t* twim_inst
static

Pointer to the instance 1 of the TWIM registers for IT.

Referenced by ISR(), twim_chained_transfer(), twim_read(), twim_read_packet(), twim_status(), twim_write(), and twim_write_packet().

volatile uint32_t twim_it_mask
static
volatile bool twim_next =false
static

If Internal Address access is used

Referenced by ISR(), twim_chained_transfer(), twim_read(), twim_read_packet(), twim_write(), and twim_write_packet().

volatile const twim_package_t* twim_package
static

Pointer to twim package

volatile uint8_t* twim_rx_data = NULL
static

Pointer to the applicative TWI receive buffer.

Referenced by ISR(), twim_chained_transfer(), twim_read(), and twim_read_packet().

volatile uint32_t twim_rx_nb_bytes = 0
static

Remaining number of bytes to receive.

Referenced by ISR(), twim_read(), and twim_read_packet().

const volatile uint8_t* twim_tx_data = NULL
static

Pointer to the applicative TWI transmit buffer.

Referenced by ISR(), twim_chained_transfer(), twim_read_packet(), twim_write(), and twim_write_packet().

volatile uint32_t twim_tx_nb_bytes = 0
static

Remaining number of bytes to transmit.

Referenced by ISR(), twim_chained_transfer(), twim_read_packet(), twim_write(), and twim_write_packet().