Hallo alle zusammen,

hurra es klappt endlich.

Woran lage es ?
Das letzte ACK beim Lesen darf natürlich nicht aktiv sein.
Auch diese habe ich kontrolliert und immer gedacht es muss so aussehen:

read2 = receiveIIC(0x00);

auch so der Beispielcode unter: http://www.robot-electronics.co.uk/h...he_i2c_bus.htm

i2c_start(); // send start sequence
i2c_tx(0xE0); // SRF08 I2C address with R/W bit clear
i2c_tx(0x01); // SRF08 light sensor register address
i2c_start(); // send a restart sequence
i2c_tx(0xE1); // SRF08 I2C address with R/W bit set
lightsensor = i2c_rx(1); // get light sensor and send acknowledge. Internal register address will increment automatically.
rangehigh = i2c_rx(1); // get the high byte of the range and send acknowledge.
rangelow = i2c_rx(0); // get low byte of the range - note we don't acknowledge the last byte.
i2c_stop(); // send stop sequence
steht ja rangelow = i2c_rx(0);

Bei mir sieht das aber anders aus und zwar so
read2 = receiveIIC(0x01);
funktioniert alles hervorragend es gibt auch keinen einzigen Busfehler mehr.

Nochmal hurra.

Also danke an alle insbesondere an Jörg und glowbrain.