User manual

282Bibliotheken
© 2013 Conrad Electronic
Sub I2C_Write(addr As Byte, hdr As ULong, hdr_len As Byte,
ByRef mem_addr As Byte, length As Word) As Byte
Beschreibung
Zuerst werden an das I2C device mit Adresse addr (I2C 7-bit Adresse) bis zu 4 Bytes header Daten
geschrieben. Die Daten werden in hdr übergeben, die Anzahl der Bytes in hdr_len. Dabei darf
hdr_len Null sein, d.h. es wird kein header übertragen. Es werden immer zuerst die höherwertigen
Bytes des header übertragen. Anschließend werden length bytes aus array mem_addr auf das I2C
device geschrieben.
Der Begriff header steht hier nicht für einen spezifischen I2C Term, sondern für bis zu 4 Bytes
die an das I2C device übertragen werden. Viele I2C Geräte benutzen einen solchen header um z.B.
ein Register zu indizieren.
Parameter
addr Adresse des I2C Gerätes
hdr Bis zu 4 byte header Daten
hdr_len nge des headers
mem_addr Array aus dem die I2C Daten geschrieben werden
length Anzahl der Daten die geschrieben werden
Rückgabewert
-1 = Übertragungsfehler
0 = erfolgreich
5.12.2.5 I2C Beispiel
Beispiel: EEPROM 24C64 lesen und schreiben
// I2C Geräte Adresse = 0x50, Bit Rate 100kHz
// EEPROM hat 16bit Speicher adresse
byte data[10];
void main(void)
{
// Lese 10 bytes von Speicheradresse 0x20 in array data[]
I2C_Read(0x50, 0x20, 2, data, 10);
// Schreibe 10 bytes aus array data[] nach EEPROM Speicheradresse 0x20
I2C_Write(0x50, 0x20, 2, data, 10);
}