mikegoesunder - 2017-01-13

Hallo,

ich bin gerade dabei eine Verbindung zwischen einen Raspberry mit Codesys und einem Arduino über spi zu realisieren.

ich synchronisiere ein 32 Byte array mit dem Aufruf:

SPI_master.transferExt(ADR(bufferOut[0]), ADR(bufferIn[0]), 32, 20, 0);

wobei bufferOut sowie bufferIn ein array mit 32 byte zugrunde liegt.

ich schreibe auf member 0 des bufferOut Arrays eine 1 sowie auf auf Member 31 des bufferOut Arrays eine Countervariable die sich in jedem Zyklus erhöht.
Im Arduino habe ich den SPI auf Slave gesetzt und weiße dem Ausgangsregister, nachdem ich jeweils das einkommende byte verarbeitet habe den empfangenen Wert + 1 zu.

Prinzipiell funktioniert es sehr gut und auch stabil.

Mein Problem:

im bufferIn Array werden die Werte die ich vom Arduino zurückgesendet bekommen um jeweils eine position im Array nach hinten gerückt.
Das heißt, ich schreibe die 1 auf member 0 des BufferOut und bekomme die 2 (1 + 1) im Array bufferIn auf member 1 zurück.

ich habe weiterhin probiert die Zuweisung des Ergebnisses im Arduino vor dem Auslesen des Registers den Rückwert zu setzen.
Ergebnis hierbei: die Werte im bufferIn array werden um 2 member verrückt.