Wenn du die RP6Control_I2CMasterLib verändern willst, könntest du die Funktion getAllSensors() so ändern:Aber wie genau meinst du das mit "allein in ein Byte"? Meinst du sowas wie "InOut=sensorBuf[29]"?
Dann stehen die I/Os in der Variablen leds (global als uint8_t definieren!).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]; }
Genau.Dort steht ja dann so was wie 0100 (LED 2 an) !?







Zitieren

Lesezeichen