Hmm, danke dir.
Das geht nun auch, aber ich bin grad am verzweifeln:
Wenn ich die Abfragen für RC5-Code, -Adresse und -Togglebit drinnen habe, dann geht auf der Base nahzu nix mehr. Sie führt zwar Befehle aus, aber das Senden der Sensordaten der Base durch die M128 an den PC (Licht L/R, Speed L/R, Bumper L/R vorne/hinten, Objekte L/R vorne/hinten, Motorstrom L/R, Register der Status-LEDs) geht überhaupt nicht mehr. Bestenfalls um etliche Sekunden verzögert...
Streiche ich das Zeug raus, geht wieder alles!!!
Und wenn ich nur alles für die RC5-Adresse rausnehme, geht alles, bis auf Speed L/R, Strom L/R, Bumper vorne und ACS vorne. Das heißt, ACS hinten, Bumper hinten und Helligkeit geht wieder.
Was geht da ab???
Hier mal mein Code ohne RC5-Adr.:
In der Base:
Code:
...
#define I2C_REG_LEDS 27
//#define I2C_REG_RC5_ADR 28
#define I2C_REG_RC5_DATA 28
#define I2C_REG_RC5_TOGGLE 29
#define I2C_REG_BUMP_BACK_L 30
#define I2C_REG_BUMP_BACK_R 31
...
I2CTWI_readRegisters[I2C_REG_LEDS] = (uint8_t)(statusLEDs.byte);
//I2CTWI_readRegisters[I2C_REG_RC5_ADR] = (uint8_t)((lastRC5Reception.device)|(lastRC5Reception.toggle_bit<<5));
I2CTWI_readRegisters[I2C_REG_RC5_DATA] = (uint8_t)(lastRC5Reception.key_code);
I2CTWI_readRegisters[I2C_REG_RC5_TOGGLE] = (uint8_t)(lastRC5Reception.toggle_bit);
I2CTWI_readRegisters[I2C_REG_BUMP_BACK_L] = (uint8_t)(bumper_back_left);
I2CTWI_readRegisters[I2C_REG_BUMP_BACK_R] = (uint8_t)(bumper_back_right);
In der M128:
Code:
...
status_leds_base = messageBuf[24];
//RC5_adr = messageBuf[25];
RC5_data = messageBuf[25];
RC5_toggle = messageBuf[26];
bumper_back_left = messageBuf[27];
bumper_back_right = messageBuf[28];
/*print("RC5-Adr:");
printInteger(RC5_adr);
print("\n");*/
print("RC5-Code:");
printInteger(RC5_data);
print("\n");
print("RC5-Toggle:");
printInteger(RC5_toggle);
print("\n");
print("LEDsBase:");
printInteger(status_leds_base);
print("\n");
print("BumpHL:");
printInteger(bumper_back_left);
print("\n");
print("BumpHR:");
printInteger(bumper_back_right);
print("\n");
Danke Euch
Lesezeichen