Aktivieren Sie JavaScript, um die Website anzuzeigen.

IDS Software Suite 4.95.1

Windows_Logo
Linux_Logo

USB 2.0

USB 3.x

GigE

USB 2.0

USB 3.x

GigE

Syntax

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

Beschreibung

Mit is_WriteI2C() können bei einigen uEye Platinenkameras Daten über das TWI (Two Wire Interface) geschrieben werden.

Die Funktion erwartet die Geräteadresse als 8-Bit-Wert, der durch einen Bitshift nach links aus der 7-Bit-Adresse des Bausteins laut Datenblatt erzeugt wird. Die Funktion füllt das Bit 0 automatisch, um zu kennzeichnen ob auf die Geräteadresse geschrieben (0) oder von dort gelesen (1) werden soll.

Für Informationen zur Beschaltung des TWI siehe im Kapitel D: Spezifikationen.

hint_info

I2C-Funktionen werden derzeit von folgenden Platinenversionen unterstützt:

•uEye LE USB 3.1 Gen 1

•USB 3 uEye LE

•USB uEye LE

•GigE uEye LE.

hint_info

Wenn Daten auf einen Mikrocontroller geschrieben werden, muss dafür gesorgt werden, dass dieser den Erhalt der Daten mit ACK bestätigt.

hint_info

Folgende Adressen für nDeviceAddr sind von der uEye Kamera belegt und dürfen nicht verwendet werden:

7-bit-Format: 0x10, 0x20, 0x21, 0x48, 0x49, 0x4C, 0x50, 0x51, 0x52, 0x55, 0x5C, 0x5D, 0x69, 0x77

8-bit-Format: 0x20, 0x40, 0x42, 0x90, 0x92, 0x98, 0xA0, 0xA2, 0xA4, 0xAA, 0xB8, 0xBA, 0xD2, 0xEE

Zusätzlich bei UI-336x/UI-536x und UI-337x/UI-537x: 0x82

Übergabeparameter

hCam

Handle auf Kamera

nDeviceAddr

Geräteadresse (8-Bit-Format)

nDeviceAddr | IS_I2C_DONT_WAIT

Standardmäßig wird per Polling abgefragt, wann das Byte tatsächlich in die Speicherzelle geschrieben wurde. Wird IS_I2C_DONT_WAIT zu nDeviceAddr verodert findet kein Polling statt.

nRegisterAddr

Adresse eines 8-Bit-Registers (nur 8-bit-Adressen gültig)

nRegisterAddr |
IS_I2C_16_BIT_REGISTER

Adresse eines 16-Bit-Registers

nRegisterAddr |
IS_I2C_0_BIT_REGISTER

Wenn nur eine Geräteadresse aber keine Register-Adresse vorhanden ist.

pbData

Zu schreibende Daten

nLen

Datenlänge (siehe Liste unten)

Abhängig von dem Kameramodell und der Registeradresse gelten für die Datenlänge (nLen) unterschiedliche Minimal- und Maximalwerte.

Kamerafamilie

7-Bit-Adresse

Registeradresse

Minimalwert

Maximalwert

USB uEye LE

Ja

Kein Flag

-

1 Byte

nLen == 1 (1 Byte Data)

USB uEye LE

Ja

8-Bit-Register

-

1 Byte

nLen == 1 (1 Byte Data)

USB uEye LE

Ja

16-Bit-Register

1 Byte

nLen == 1 (1 Byte Data)

2 Byte

nLen == 2 (2 Byte Data)

USB 3 uEye LE

Ja

Kein Flag

1 Byte

nLen == 1 (1 Byte Data)

62 Byte

nLen == 62 (62 Byte Data)

USB 3 uEye LE

Ja

8-Bit-Register

1 Byte

nLen == 1 (1 Byte Data)

62 Byte

nLen == 62 (62 Byte Data)

USB 3 uEye LE

Ja

16-Bit-Register

2 Byte

nLen == 2 (2 Byte Data)

62 Byte

nLen == 62 (62 Byte Data)

uEye LE USB 3.1 Gen 1

Ja

Kein Flag

1 Byte

nLen == 1 (1 Byte Data)

62 Byte

nLen == 62 (62 Byte Data)

uEye LE USB 3.1 Gen 1

Ja

8-Bit-Register

1 Byte

nLen == 1 (1 Byte Data)

62 Byte

nLen == 62 (62 Byte Data)

uEye LE USB 3.1 Gen 1

Ja

16-Bit-Register

2 Byte

nLen == 2 (2 Byte Data)

62 Byte

nLen == 62 (62 Byte Data)

GigE uEye LE

Ja

Kein Flag

1 Byte

nLen == 1 (1 Byte Data)

62 Byte

nLen == 62 (62 Byte Data)

GigE uEye LE

Ja

8-Bit-Register

1 Byte

nLen == 1 (1 Byte Data)

62 Byte

nLen == 62 (62 Byte Data)

GigE uEye LE

Ja

16-Bit-Register

2 Byte

nLen == 2 (2 Byte Data)

62 Byte

nLen == 62 (62 Byte Data)

Rückgabewert

IS_CANT_COMMUNICATE_WITH_DRIVER

Kommunikation mit dem Kameratreiber schlug fehl, weil kein Treiber geladen ist.

IS_CANT_OPEN_DEVICE

Ein Versuch die Kamera zu öffnen schlug fehl (Kamera nicht vorhanden oder Fehler beim Initialisieren).

IS_INVALID_CAMERA_HANDLE

Ungültiges Kamera-Handle

IS_INVALID_I2C_DEVICE_ADDRESS

Ungültige I2C-Geräteadresse

IS_INVALID_PARAMETER

Einer der übergebenen Parameter ist außerhalb des gültigen Bereichs, oder für diesen Sensor nicht unterstützt, bzw. in diesem Modus nicht zugänglich.

IS_IO_REQUEST_FAILED

Eine IO Anforderung des uEye Treibers schlug fehl. Eventuell passen die Versionen der Dateien ueye_api.dll (API) und ueye_usb.sys bzw. ueye_eth.sys (Treiber) nicht zusammen.

Dieser Fehlercode wird auch zurückgegeben, wenn sich der Mikrocontroller nicht korrekt mit ACK zurückmeldet.

IS_NO_SUCCESS

Allgemeine Fehlermeldung

IS_SUCCESS

Funktion erfolgreich

Verwandte Funktionen

•is_ReadI2C()

•is_DeviceFeature(): I2C-Stop-Bit setzen

Beispiel

// ------------------------------------------------------
// Auf I2C-Gerät schreiben:
//
// 16-bit-Register adressieren
// Hinweis:
// Es dürfen nur 2 Byte auf einmal geschrieben werden
 
is_WriteI2C (hCam, DevAdr, RegAdr | IS_I2C_16_BIT_REGISTER, pbData, 2);
 
// 8-bit-Register adressieren
// Hinweis:
// 1. Es dürfen 1 oder 2 Byte auf einmal geschrieben werden
 
// 1 Byte schreiben
is_WriteI2C (hCam, DevAdr, RegAdr, pbData, 1);
// 2 Byte schreiben
is_WriteI2C (hCam, DevAdr, RegAdr, pbData, 2);
 
 
// ------------------------------------------------------
// Von I2C-Gerät lesen
//
// 16-bit-Register adressieren
is_ReadI2C (hCam, DevAdr, RegAdr | IS_I2C_16_BIT_REGISTER, pbData, 2);
 
// 8-bit-Register adressieren
 
// 1 Byte lesen
is_ReadI2C (hCam, DevAdr, RegAdr, pbData, 1);
// 2 Byte lesen
is_ReadI2C (hCam, DevAdr, RegAdr, pbData, 2);
 
 
// ------------------------------------------------------
// Beispielwerte
// Adresse des Bausteins (aus dem Datenblatt entnommen): 0x40
// Adresse des Bausteins im 8-bit-Format (Linksshift): 0x80
// Adresse zum Schreiben (von is_WriteI2C() erzeugt): 0x80
// Adresse zum Lesen (von is_ReadI2C() erzeugt): 0x81
//
// Auf Baustein mit Adresse 0x40 Wert 0x52 in Register 0x00 schreiben
BYTE bValue = 0x52;
is_WriteI2C (hCam, 0x80, 0x00, &bValue, 1);
 
// Von Baustein mit Adresse 0x40 Wert aus Register 0x00 lesen
INT nVal;
BYTE bValue = 0;
is_ReadI2C (hCam, 0x80, 0x00, &bValue, 1);