Modified version of the official mbed lib providing a RTOS enabled i2c-driver based on the official i2c-C-api.

Dependencies:   mbed-rtos mbed-src

Embed: (wiki syntax)

« Back to documentation index

I2CMasterRtos Class Reference

I2CMasterRtos Class Reference

I2C master interface to the RTOS-I2CDriver. More...

#include <I2CMasterRtos.h>

Public Member Functions

 I2CMasterRtos (PinName sda, PinName scl, int freq=100000)
 Create an I2C Master interface, connected to the specified pins.
void frequency (int hz)
 Set the frequency of the I2C interface.
int read (int address, char *data, int length, bool repeated=false)
 Read from an I2C slave.
int read (int address, uint8_t _register, char *data, int length, bool repeated=false)
 Read from a given I2C slave register.
int read (int ack)
 Read a single byte from the I2C bus.
int write (int address, const char *data, int length, bool repeated=false)
 Write to an I2C slave.
int write (int data)
 Write single byte out on the I2C bus.
void startMaster (void)
 Creates a start condition on the I2C bus.
void stop (void)
 Creates a stop condition on the I2C bus.

Detailed Description

I2C master interface to the RTOS-I2CDriver.

The interface is compatible to the original mbed I2C class. Provides an additonal "read from register"-function.

Definition at line 12 of file I2CMasterRtos.h.


Constructor & Destructor Documentation

I2CMasterRtos ( PinName  sda,
PinName  scl,
int  freq = 100000 
)

Create an I2C Master interface, connected to the specified pins.

Parameters:
sdaI2C data line pin
sclI2C clock line pin
Note:
Has to be created in a thread context, i.e. within the main or some other function. A global delaration does not work

Definition at line 24 of file I2CMasterRtos.h.


Member Function Documentation

void frequency ( int  hz )

Set the frequency of the I2C interface.

Parameters:
hzThe bus frequency in hertz

Definition at line 30 of file I2CMasterRtos.h.

int read ( int  address,
char *  data,
int  length,
bool  repeated = false 
)

Read from an I2C slave.

Performs a complete read transaction. The bottom bit of the address is forced to 1 to indicate a read.

Parameters:
address8-bit I2C slave address [ addr | 1 ]
dataPointer to the byte-array to read data in to
lengthNumber of bytes to read
repeatedRepeated start, true - don't send stop at end
Returns:
0 on success (ack), non-0 on failure (nack)

Definition at line 48 of file I2CMasterRtos.h.

int read ( int  ack )

Read a single byte from the I2C bus.

Parameters:
ackindicates if the byte is to be acknowledged (1 = acknowledge)
Returns:
the byte read

Definition at line 78 of file I2CMasterRtos.h.

int read ( int  address,
uint8_t  _register,
char *  data,
int  length,
bool  repeated = false 
)

Read from a given I2C slave register.

Performs a complete write-register-read-data-transaction. The bottom bit of the address is forced to 1 to indicate a read.

Parameters:
address8-bit I2C slave address [ addr | 1 ]
_register8-bit regster address
dataPointer to the byte-array to read data in to
lengthNumber of bytes to read
repeatedRepeated start, true - don't send stop at end
Returns:
0 on success (ack), non-0 on failure (nack)

Definition at line 67 of file I2CMasterRtos.h.

void startMaster ( void   )

Creates a start condition on the I2C bus.

Definition at line 115 of file I2CMasterRtos.h.

void stop ( void   )

Creates a stop condition on the I2C bus.

Definition at line 121 of file I2CMasterRtos.h.

int write ( int  data )

Write single byte out on the I2C bus.

Parameters:
datadata to write out on bus
Returns:
'1' if an ACK was received, '0' otherwise

Definition at line 108 of file I2CMasterRtos.h.

int write ( int  address,
const char *  data,
int  length,
bool  repeated = false 
)

Write to an I2C slave.

Performs a complete write transaction. The bottom bit of the address is forced to 0 to indicate a write.

Parameters:
address8-bit I2C slave address [ addr | 0 ]
dataPointer to the byte-array data to send
lengthNumber of bytes to send
repeatedRepeated start, true - do not send stop at end
Returns:
0 on success (ack), non-0 on failure (nack)

Definition at line 96 of file I2CMasterRtos.h.