@RP6fahrer:
I2C_REG_ADC_ADC0_L ist nur eine Konstante, die ist in der RP6Control_I2CMasterLib.h als 23 definiert.
Du könntest also auch I2CTWI_readRegisters(10, 23, RP6data, 2); schreiben.

Damit liest du 2 Bytes, das erste ist der Low Wert von ADC0 (aus Register 23), der wird in RP6data[0] gespeichert.
Das 2. Byte ist der High Wert von ADC0 (aus Register 24), der wird in RP6data[1] gespeichert.

I2C_REG_ADC_ADC0_H braucht man nicht, weil das 2. Byte automatisch aus Register 24 gelesen wird, wenn man 2 Bytes einliest.

Der komplette adc0-Wert errechnet sich als: adc0 = Low Wert + (256 * High Wert), also:
adc0 = RP6data[0] + (RP6data[1] * 256);

Anstelle von *256 kann man auch achtmal nach links schieben: <<8

RP6data iat eine Variable.