Aber wie genau meinst du das mit "allein in ein Byte"? Meinst du sowas wie "InOut=sensorBuf[29]"?
Wenn du die RP6Control_I2CMasterLib verändern willst, könntest du die Funktion getAllSensors() so ändern:
Code:
void getAllSensors(void)
{
 I2CTWI_readRegisters(I2C_RP6_BASE_ADR, I2C_REG_POWER_LEFT, sensorBuf, 27);
 mleft_power = sensorBuf[0];
 mright_power = sensorBuf[1];
 mleft_speed = sensorBuf[2];
 mright_speed = sensorBuf[3];
 mleft_des_speed = sensorBuf[4];
 mright_des_speed = sensorBuf[5];
 mleft_dist = sensorBuf[6] + (sensorBuf[7]<<8);
 mright_dist = sensorBuf[8] + (sensorBuf[9]<<8);
 adcLSL = sensorBuf[10] + (sensorBuf[11]<<8);
 adcLSR = sensorBuf[12] + (sensorBuf[13]<<8);
 adcMotorCurrentLeft = sensorBuf[14] + (sensorBuf[15]<<8);
 adcMotorCurrentRight = sensorBuf[16] + (sensorBuf[17]<<8);
 adcBat = sensorBuf[18] + (sensorBuf[19]<<8);
 adc0 = sensorBuf[20] + (sensorBuf[21]<<8);
 adc1 = sensorBuf[22] + (sensorBuf[23]<<8);
 leds = sensorBuf[26];
}
Dann stehen die I/Os in der Variablen leds (global als uint8_t definieren!).

Dort steht ja dann so was wie 0100 (LED 2 an) !?
Genau.