So, jetzt gibts ein neues Problem.
Ich habe nun zum Register, das die M128 ausließt, die Base-LED-Zustände hinzugefügt sowie die Adresse und den Tastencode von RC5-Daten:
Code:
void getAllSensors(void)
{
RP6_readRegisters(RP6_BASE_ADR, I2C_REG_POWER_LEFT, messageBuf, 27);
mleft_power = messageBuf[0];
mright_power = messageBuf[1];
mleft_speed = messageBuf[2];
mright_speed = messageBuf[3];
mleft_des_speed = messageBuf[4];
mright_des_speed = messageBuf[5];
mleft_dist = messageBuf[6] + (messageBuf[7]<<8);
mright_dist = messageBuf[8] + (messageBuf[9]<<8);
adcLSL = messageBuf[10] + (messageBuf[11]<<8);
adcLSR = messageBuf[12] + (messageBuf[13]<<8);
adcMotorCurrentLeft = messageBuf[14] + (messageBuf[15]<<8);
adcMotorCurrentRight = messageBuf[16] + (messageBuf[17]<<8);
adcBat = messageBuf[18] + (messageBuf[19]<<8);
adc0 = messageBuf[20] + (messageBuf[21]<<8);
adc1 = messageBuf[22] + (messageBuf[23]<<8);
RC5_adr = messageBuf[24];
RC5_data = messageBuf[25];
status_leds_base = messageBuf[26];
}
Und genau dort muss ein Fehler liegen, irgendwie beim Registerlesen von den RC5-Daten. Genauer, bei Auslesen von RC5_adr. Denn wenn ich diese Zeile rausnehme, läuft mein Programm wunderbar. Habe ich diese Zeile drinnen, kommt mein Programm gerne ins stocken. Um genau zu sein, geht alles gut,bis ich einen Fahrbefehl rausgebe. Solange der RP6 sich bewegt, dauert es locker drei-vier Sekunden, bis das ACS Objekte erkennt bzw. erkennt, dass sie nicht mehr da sind.
Wär schön zu wissen, was da schief läuft...
Danke Euch
Lesezeichen