Wie ich schon sagte ist es egal was gesendet wird. Beispielsweise sollte auch ein "I2C general call" funktionieren.
Code:I2CTWI_transmitByte(0, 0); mSleep(200); I2CTWI_transmitByte(0, 0);
MfG,
SlyD
Wie ich schon sagte ist es egal was gesendet wird. Beispielsweise sollte auch ein "I2C general call" funktionieren.
Code:I2CTWI_transmitByte(0, 0); mSleep(200); I2CTWI_transmitByte(0, 0);
MfG,
SlyD
Genau genommen sollte es sogar so
bereits funktionieren. Die Pause ggf. etwas länger machen.Code:mSleep(250); I2CTWI_transmitByte(0, 0);
Noch zur Erläuterung:
Das Problem ist einfach, dass der ältere Bootloader im Slave (RP6 Mainboard) nach dem Reset zu lange auf Kommunikation vom PC über USB wartet, in der Zeit aber nicht auf den I2C Bus achtet.
Das M256 Modul kann das Programm wesentlich schneller starten wenn der Befehl vom PC kommt und dann bekommt der Slave Bootloader den Start nicht mit (könnte man ggf. sogar im RobotLoader künstlich etwas verzögern - müsste ich aber ausführlich testen und habe da aktuell leider noch weniger Zeit zu).
MfG,
SlyD
Der Code oben hat tatsächlich gereicht, um Programm 10-Move2 sicher zu starten!
Allerdings wollte das Programm 9-Move damit NICHT starten, auch nicht mit längerer Pause. Ich habe schließlich für beide Programme diesen Schnipsel versucht:
Damit starten beide sicher!Code:I2CTWI_transmitByte(0, 0); mSleep(200); I2CTWI_transmitByte(0, 0);
Problem gelöst, Danke!
Uwe
Lesezeichen