INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
SPI Buffer empfangen
15.03.2016, 18:32
Beitrag #1
SPI Buffer empfangen
Guten Abend,

ich hätte wieder ne kleine Frage die mir nich ausführlich genug im Arduino.cc steht.

Ich sende Daten mit dem SPI aber wie empfang ich diesen Buffer am besten in einem Array?

SPI.transfer(SPIBuffer, sizeof SPIBuffer); //Buffersize 100
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2016, 21:33
Beitrag #2
RE: SPI Buffer empfangen
Hi,
also grundsätzlich geht das empfangen von SPI Daten so:

empfangsdaten = SPI.transfer(sendedaten);

wobei die Variablen am besten vom Typ byte sind.

und wenn du das gleich in ein Array schreib willst dann sieht das so aus:

empfangsdaten[empfindex] = SPI.transfer(sendedaten);

Dann mußt nur noch den empfindex verwalten.

lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2016, 21:37 (Dieser Beitrag wurde zuletzt bearbeitet: 16.03.2016 21:56 von BennIY.)
Beitrag #3
RE: SPI Buffer empfangen
Also muss ich eine schleife machen die 100 mal durchläuft und die 100 bytes empfängt so wie beim sender der buffer also 100 werte gestreamt werden sehe ich das richtig?

for(byte i = 0; i < 100; i++)
{
empfangsdaten[i] = SPI.transfer(0);
}

Wichtig dabei ist, dass das erste Byte im Sendebuffer auch den Index 0 beim Empfänger haben muss. Es werden immer 100Bytes als Buffer gesendet diese müssen genau in diesem Paket ankommen. Es ist vergleichbar mit dem DMX Protokoll eine Art Adressierung jedes Byte im Buffer hat eine eigene Funktion der ein Wert als byte mitgegeben wird.
Was ist wenn die Schleife durch läuft während gerade gesendet wird? es soll keine verschiebung zwischen Senden und empfangen entstehen. Am Liebsten ist mir die UART aber sämtliche Hard und Software Kanäle sind aufgebraucht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2016, 23:02
Beitrag #4
RE: SPI Buffer empfangen
(16.03.2016 21:37)BennIY schrieb:  Also muss ich eine schleife machen die 100 mal durchläuft und die 100 bytes empfängt so wie beim sender der buffer also 100 werte gestreamt werden sehe ich das richtig?

for(byte i = 0; i < 100; i++)
{
empfangsdaten[i] = SPI.transfer(0);
}

Wichtig dabei ist, dass das erste Byte im Sendebuffer auch den Index 0 beim Empfänger haben muss. Es werden immer 100Bytes als Buffer gesendet diese müssen genau in diesem Paket ankommen. Es ist vergleichbar mit dem DMX Protokoll eine Art Adressierung jedes Byte im Buffer hat eine eigene Funktion der ein Wert als byte mitgegeben wird.
Was ist wenn die Schleife durch läuft während gerade gesendet wird? es soll keine verschiebung zwischen Senden und empfangen entstehen. Am Liebsten ist mir die UART aber sämtliche Hard und Software Kanäle sind aufgebraucht.


genau so,
ABER, wenn du da auf der Gegenseite keine dumme Hardware hast sondern auch einen Kontroller dann mußte erstens mal einen Master und einen Slave definieren und die !SS Leitung auch verbinden die dann beim Slave der CS ist.
Und um dann die Bufferindexe zu synchronisieren mußte dir ein Protokoll einfallen lassen über das du dann die Indexnummer dem anderen mitteilen kannst. Aber das Problem hast auf jeder Seriellen Schnittstelle.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.03.2016, 00:07
Beitrag #5
RE: SPI Buffer empfangen
Den master gibt es schon nur ein Arduino Slave hab ich noch nie gebaut das waren meistens schieberefister peripherie etc wie mache ich das?
Protokoll ist kein Problem SPI ist ja sehr schnell da denk ich mir was aus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.03.2016, 13:35
Beitrag #6
RE: SPI Buffer empfangen
(17.03.2016 00:07)BennIY schrieb:  Den master gibt es schon nur ein Arduino Slave ...
wie mache ich das?

..ähm hatte ich im letzten Post schon beschrieben...nur die Software dazu bzw. die Parameter beim SPI.begin kenne ich auch nicht...und wie man dann den SS Eingang freigibt das er funzt habe ich auch noch nicht gesehen. Also einfach mal ausprobieren.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  NRF24L01+ "Ping" senden, empfangen, bestätigen MeisterQ 8 376 23.08.2016 13:19
Letzter Beitrag: MeisterQ
  Serielle Schnittstelle - Daten empfangen Datatom 8 772 22.05.2016 18:10
Letzter Beitrag: avoid
  Buffer reservieren im SRAM vom DUE arduinopeter 1 298 28.03.2016 10:16
Letzter Beitrag: rkuehle
  DMX Signal mit Arduino empfangen, aber wie? mat21his 4 654 28.01.2016 16:20
Letzter Beitrag: ardu_arne
  IR Pioneer empfangen Respun 9 979 07.01.2016 23:26
Letzter Beitrag: Respun
  Umwandlung von buffer in long Wampo 13 1.003 19.12.2015 10:53
Letzter Beitrag: Wampo
  Mit dem Webserverbeispiel senden und empfangen. arduinofan 3 677 09.12.2015 12:41
Letzter Beitrag: arduinofan
  I2C mehr als 32-Byte empfangen chhec 10 771 16.11.2015 11:26
Letzter Beitrag: chhec
  Daten per USB senden/empfangen chhec 6 1.052 03.11.2015 09:15
Letzter Beitrag: arduinofan
  UDP empfangen? eisenkarl 5 1.085 10.08.2015 09:36
Letzter Beitrag: eisenkarl

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste