Alcor6L/eLua/i2c
< Alcor6L
This module contains functions for accessing the I2C interfaces of the eLua CPU.
Only master I2C mode is implemented in eLua.
Functions edit
i2c.setup edit
Setup the I2C interface.
speed = i2c.setup( id, speed )
- id - the ID of the I2C interface.
- speed - the clock frequency of the I2C interface. It can be i2c.FAST (400KHz), i2c.SLOW (100KHz) or a number giving the required I2C bus clock speed in Hz.
Returns:
- speed - the actual speed of the I2C interface.
i2c.start edit
Send a START on the specified I2C interface.
i2c.start( id )
- id - the ID of the I2C interface.
Returns: nothing.
i2c.stop edit
Send a STOP on the specified I2C interface.
i2c.stop( id )
- id - the ID of the I2C interface.
Returns: nothing.
i2c.address edit
Send an address on the I2C interface.
acked = i2c.address( id, address, direction )
- id - the ID of the I2C interface.
- address - the address.
- direction - i2c.TRANSMITTER if the master wants to send data, or i2c.RECEIVER if the master wants to receive data.
Returns:
- acked[check spelling] - true if the address was acknowledged by an I2C slave, false otherwise.
i2c.write edit
Writes data to a slave that has already acknowledged an i2c.address call.
wrote = i2c.write( id, data1, [data2], ..., [datan] )
- id - the ID of the I2C interface.
- data1 - the data to send. It can be either a number between 0 and 255, a string or a table (array) of numbers.
- data2 (optional) - the second data to send.
- datan (optional) - the n-th data to send.
Returns:
- wrote - the number of bytes actually written.
i2c.read edit
data = i2c.read( id, numbytes )
Reads a number of bytes from a slave that has already acknowledged an i2c.address call. It acknowledges all the bytes received except for the last one.
- id - the ID of the I2C interface.
- numbytes - the number of bytes to read.
Returns:
- data - a string with all the data read from the I2C interface.