Home > C: Programming > Function Descriptions > History back  Previous chapter  Next chapter  Print  

is_WriteI2C

uEye Camera Manual Version 3.80

is_WriteI2C

Windows_Logo

Linux_Logo

USB 2.0

USB 2.0

Syntax

INT is_WriteI2C (HIDS hCam,
INT nDeviceAddr, INT nRegisterAddr,
BYTE* pbData, INT nLen)

Description

Using is_WriteI2C(), you can write data via the I2C bus of a board level camera.

The uEye processes I2C addresses in a 7-bit format that is created from the 8-bit format by a bit shift to the right. The eighth bit indicates whether an address is a read (1) or write (0) address. For example, the 7-bit address 0x48 is the write address 0x90 and the read address 0x91 in 8-bit format.

For information on the signals applied to the I2C bus, refer to the chapters with electrical specifications for the USB uEye LE and the USB uEye ME.

Hinweis

The is_WriteI2C() function is only supported by PCB versions of the USB uEye ME/LE camera series.

Hinweis

If you write data on a micro controller via the uEye camera, make sure that the micro controller confirms the transfer with an ACK message.

Achtung

The following addresses for nRegisterAddr are assigned to the uEye and must not be used:
7-bit format: 0x10, 0x48, 0x4C, 0x50, 0x51, 0x52, 0x55, 0x5C, 0x5D, 0x69

8-bit format: 0x20, 0x90, 0x98, 0xA0, 0xA2, 0xA4, 0xAA, 0xB8, 0xBA, 0xD2

Input Parameters

hCam

Camera handle

nDeviceAddr

Device address

nRegisterAddr

Address of a 8 bit register (only 8-bit addresses are valid)

nRegisterAddr |
IS_I2C_16_BIT_REGISTER

Address of a 16 bit register

pbData

Data to be written

nLen

Data length

nLen = 1: 8 bits data

nLen = 2: 16 bits data

Return Values

IS_SUCCESS

Function executed successfully

IS_NO_SUCCESS

General error message

Related Functions

is_ReadI2C()

Example


// ------------------------------------------------------

// Write to I2C device:

//

// 16 bit register addressing

// Note:

// Only writing 2 bytes at once is allowed

 

is_WriteI2C (hCam, DevAdr, RegAdr | IS_I2C_16_BIT_REGISTER, pbData, 2);

 

// 16 bit register addressing

// Note:

// Writing 1 or 2 bytes at once is allowed

 

// Writing 1 byte

is_WriteI2C (hCam, DevAdr, RegAdr, pbData, 1);

// Writing 2 bytes

is_WriteI2C (hCam, DevAdr, RegAdr, pbData, 2);

 

 

// ------------------------------------------------------

// Read from I2C device:

//

// 16 bit register addressing

// Note:

// Only reading 2 bytes at once is allowed

 

is_ReadI2C (hCam, DevAdr, RegAdr | IS_I2C_16_BIT_REGISTER, pbData, 2);

 

// 8 bit register addressing

// Note:

// Reading 1 or 2 bytes at once is allowed

 

// Reading 1 byte

is_ReadI2C (hCam, DevAdr, RegAdr, pbData, 1);

// Reading 2 bytes

is_ReadI2C (hCam, DevAdr, RegAdr, pbData, 2);

 

 

// ------------------------------------------------------

// Example values

// Device address (from device data sheet): 0x40

// Device address in 8 bit format (after left shift): 0x80

// Device address for write (generated by is_WriteI2C()): 0x80

// Device address for read (generated by is_ReadI2C()) 0x81

 

// Write value 0x52 to device with address 0x40 in register 0x00

BYTE bValue = 0x52;

is_WriteI2C (hCam, 0x80, 0x00, &bValue, 1);

 

// Read from device with address 0x40, register 0x00

INT nVal;

BYTE bValue = 0;

is_ReadI2C (hCam, 0x80, 0x00, &bValue, 1);


Suggestion for improvement? Send us your short Feedback on this chapter. Thank you very much!


© 2010 IDS Imaging Development Systems GmbH
http://www.ids-imaging.com