Mouse code for the MacroRat

Dependencies:   ITG3200 QEI

Embed: (wiki syntax)

« Back to documentation index

Asynchronous I2C Hardware Abstraction Layer

Asynchronous I2C Hardware Abstraction Layer
[Hal]

Functions

void i2c_transfer_asynch (i2c_t *obj, const void *tx, size_t tx_length, void *rx, size_t rx_length, uint32_t address, uint32_t stop, uint32_t handler, uint32_t event, DMAUsage hint)
 Start I2C asynchronous transfer.
uint32_t i2c_irq_handler_asynch (i2c_t *obj)
 The asynchronous IRQ handler.
uint8_t i2c_active (i2c_t *obj)
 Attempts to determine if the I2C peripheral is already in use.
void i2c_abort_asynch (i2c_t *obj)
 Abort asynchronous transfer.

Function Documentation

void i2c_abort_asynch ( i2c_t obj )

Abort asynchronous transfer.

This function does not perform any check - that should happen in upper layers.

Parameters:
objThe I2C object
uint8_t i2c_active ( i2c_t obj )

Attempts to determine if the I2C peripheral is already in use.

Parameters:
objThe I2C object
Returns:
Non-zero if the I2C module is active or zero if it is not
uint32_t i2c_irq_handler_asynch ( i2c_t obj )

The asynchronous IRQ handler.

Parameters:
objThe I2C object which holds the transfer information
Returns:
Event flags if a transfer termination condition was met, otherwise return 0.
void i2c_transfer_asynch ( i2c_t obj,
const void *  tx,
size_t  tx_length,
void *  rx,
size_t  rx_length,
uint32_t  address,
uint32_t  stop,
uint32_t  handler,
uint32_t  event,
DMAUsage  hint 
)

Start I2C asynchronous transfer.

Parameters:
objThe I2C object
txThe transmit buffer
tx_lengthThe number of bytes to transmit
rxThe receive buffer
rx_lengthThe number of bytes to receive
addressThe address to be set - 7bit or 9bit
stopIf true, stop will be generated after the transfer is done
handlerThe I2C IRQ handler to be set
hintDMA hint usage