uEye Kamera-Handbuch Version 4.92
![]() |
![]() |
USB 2.0 USB 3.0 GigE |
USB 2.0 USB 3.0 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 den I2C-Bus 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 I2C-Bus siehe im Kapitel D: Spezifikationen.
![]() |
I2C-Funktionen werden von den Platinenversionen der Kameraserien uEye LE USB 3.1 Gen 1, USB 3 uEye LE, USB uEye LE und GigE uEye LE unterstützt. |
![]() |
Wenn Daten auf einen Mikrocontroller geschrieben werden, muss dafür gesorgt werden, dass dieser den Erhalt der Daten mit ACK bestätigt. |
![]() |
Folgende Adressen für nDeviceAddr sind von der uEye Kamera belegt und dürfen nicht verwendet werden: 7-bit-Format: 0x10, 0x48, 0x4C, 0x50, 0x51, 0x52, 0x55, 0x5C, 0x5D, 0x69, 0x77 8-bit-Format: 0x20, 0x90, 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 | |
Adresse eines 16-Bit-Registers |
nRegisterAddr | |
Wenn nur eine Geräteadresse aber keine Register-Adresse vorhanden ist. |
pbData |
Zu schreibende Daten |
nLen |
Datenlänge (max. 62 Byte) |
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_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);
Haben Sie Verbesserungshinweise? Senden Sie ein kurzes
Feedback zu diesem Kapitel.
Vielen Dank!
Bei technischen Fragen wenden Sie sich bitte an Ihren lokalen Händler oder nutzen Sie das Support-Formular auf unserer Internetseite.