LOGGER  Logger
Data Logging using ESP8266
Macros | Functions
i2cservices.cpp File Reference
#include <arduino.h>
#include "i2cservices.h"
#include "services.h"
#include <Wire.h>
#include "huzzahpins.h"

Macros

#define i2cservicesEdit   1
 version of this module
 
#define IS_HUZZAH   1
 default value for HUZZAH
 

Functions

EXTERNDEF void i2cservicesInit ()
 < version of this include file More...
 
EXTERNDEF void i2cservicesLoop ()
 
EXTERNDEF void sendToSlave (uint8_t slaveAddress, uint16_t numBytes, const char *pBytes)
 
EXTERNDEF void i2cDumpWireError (const char *pMsg)
 
EXTERNDEF void i2cWriteAddress (uint8_t i2cAddress, uint8_t romAddress)
 
EXTERNDEF void i2cPoll (uint8_t i2cAddress)
 
EXTERNDEF uint8_t i2cReadData (uint8_t i2cAddress, size_t count, uint8_t *pData, uint8_t romAddress)
 
EXTERNDEF uint8_t i2cReadDataByBytes (uint8_t i2cAddress, size_t count, uint8_t *pData, uint8_t romAddress)
 
EXTERNDEF void i2cWriteData (uint8_t i2cAddress, size_t count, uint8_t *pData, uint8_t romAddress, const char *pError)
 
EXTERNDEF void i2cWriteBlock (uint8_t i2cAddress, size_t count, uint8_t *pData, uint8_t romAddress, const char *pError)
 

Detailed Description

I2C master communication Support

Function Documentation

EXTERNDEF void i2cDumpWireError ( const char *  pMsg)

Dump any error condition from I2C driver

Parameters
pMsgpointer to initial message string
EXTERNDEF void i2cPoll ( uint8_t  i2cAddress)

Poll an i2c device by issuing a simple read operation. A single byte is read after the read.

Parameters
i2cAddressI2C address of part
EXTERNDEF uint8_t i2cReadData ( uint8_t  i2cAddress,
size_t  count,
uint8_t *  pData,
uint8_t  romAddress = 0 
)

Read data from an I2C device

Parameters
i2cAddressI2C address of part
countnumber of bytes to read
pDatapointer to buffer to put data in
romAddressaddress in ROM of first byte
Returns
number of bytes read
EXTERNDEF uint8_t i2cReadDataByBytes ( uint8_t  i2cAddress,
size_t  count,
uint8_t *  pData,
uint8_t  romAddress = 0 
)

Read data from an I2C device. This is the same as i2cReadData, but, reads the data one byte at a time. This is useful for devices that do not allow for incrementing the address over a full range of addresses.

Parameters
i2cAddressI2C address of part
countnumber of bytes to read
pDatapointer to buffer to put data in
romAddressaddress in ROM of first byte
Returns
number of bytes read
EXTERNDEF void i2cservicesInit ( )

< version of this include file

Initialize I2C communication services.

EXTERNDEF void i2cservicesLoop ( )

call this from the main loop to service I2C communication events in a non interrupt context

EXTERNDEF void i2cWriteAddress ( uint8_t  i2cAddress,
uint8_t  romAddress 
)

Write an address to an I2C device

Parameters
romAddressmemory address to send to the part
i2cAddressI2C address of part
EXTERNDEF void i2cWriteBlock ( uint8_t  i2cAddress,
size_t  count,
uint8_t *  pData,
uint8_t  romAddress,
const char *  pError = NULL 
)

Write a block of data to an I2C device

Parameters
i2cAddressI2C address of part reading from
countnumber of bytes
pDatapointer to data to write
romAddressaddress in ROM of first byte
pErrorpointer to text to use in error message (may be NULL)
EXTERNDEF void i2cWriteData ( uint8_t  i2cAddress,
size_t  count,
uint8_t *  pData,
uint8_t  romAddress,
const char *  pError = NULL 
)

Write data to an I2C device, this writes a byte at a time.

Parameters
i2cAddressI2C address of part reading from
countnumber of bytes
pDatapointer to data to write
romAddressaddress in ROM of first byte
pErrorpointer to text to use in error message (may be NULL)
EXTERNDEF void sendToSlave ( uint8_t  slaveAddress,
uint16_t  numBytes,
const char *  pBytes 
)

Send a block of bytes to an I2C slave

Parameters
slaveAddress7 bit I2C address of the slave
numBytesnumber of bytes to send
pBytespointer to block of bytes