Hab das mal kurz angeschaut.
Also im Slave (RP6Base) kannste erstmal das hier:
rauswerfen spart schonmal etwas Rechenzeit (die UART Ausgabe ist ja blockierend und die Baudrate ist standardmäßig nur 38.4kBit/s also dauert das länger als man denkt sowas auszugeben - könnte man natürlich auf 500kBit/s erhöhen).Zeile 489...
if(getStopwatch1() >= 1000)
{
SerialHeartBeat();
StartErrorFrame();
writeString_P("RP6 Remotrol ist mit dem Slave-Controller verbunden!\n");
writeString_P("Das Kabel muss an den Master-Controller angeklemmt werden!\n");
EndErrorFrame();
setStopwatch1(0);
}
Ist ja nix an der seriellen Schnittstelle angeschlossen also dürfte das überflüssig sein.
Dann mal schauen obs was bringt in RP6CCLib.cc
Zeile 841:
// I2C Modul initialisieren:
I2C_Init(I2C_100kHz);
in 400kHz zu ändern.
Bei viel Datenverkehr auf dem Bus ist das sinnvoll.
Dann in M128_PCConnection.cc
Zeile 725:
timeBetweenFrames = 240;
mal probehalber auf 1000 oder 2000 erhöhen.
Die SRF02 im Code deaktivieren und auch alles andere was nicht benötigt wird.
Dazu dann noch die Hardwaregeschichten die oben schon vorgeschlagen wurden.
Dann schrittweise wieder zuschalten und testen.
MfG,
SlyD
Lesezeichen