Forum: Mikrocontroller und Digitale Elektronik Arduino TWI mehr als 32 Byte


von Tim (Gast)


Lesenswert?

Hallo,
ich habe zwei arduinos per TWI miteinander verbunden. Der Datenaustausch 
klappt auch prima. Ich habe jetzt nur das Problem das ich 52 Byte 
übertragen möchte und vim TWI beim arduino nur 32 Byte unterstützt 
werden.
Habe nun in der wire.h die Buffer länge auf 64Byte geändert:
1
#define BUFFER_LENGTH 64

und in der twi.h ebenfalls:
1
#define TWI_BUFFER_LENGTH 64

Leider bekomme ich immer noch nur 32 werte gesendet. Hat jemand mit 
ähnlichen problemen schonmal seine erfahrung gemacht?

Hier noch der Codeausschnitt vom Master:
1
 Wire.beginTransmission(SLAVE1);
2
  for(int i=0; i<=51; i++)
3
  {
4
  Wire.write(konfig[i]);
5
  }
6
  Wire.endTransmission();
un dvom Slave:
1
 while(Wire1.available())
2
 {
3
  konfig[i] = Wire1.read();
4
  i++;
5
 }

von Tim (Gast)


Lesenswert?

Habe Gerade mit folgendem Code herausgefunde, das der Funktion 
"numBytes=32"
übergeben wird. An dieser stelle wäre ja wahrscheinlich eine 32 
sinnvoller oder sehe ich das falsch? wo kann ich das wohl ändern?

von Tim (Gast)


Lesenswert?

1
void Detection_Config(int numBytes)
2
{
3
 int i=0;
4
 //while(Wire1.available()<1);
5
 while(Wire1.available())
6
 {
7
  konfig[i] = Wire1.read();
8
  i++;
9
 }
10
 Serial.println(numBytes);

von Tim (Gast)


Lesenswert?

ich habe das Problem leider immer noch nicht lösen können. Daher wäre 
ich um jede Anregung dankbar

von Peter D. (peda)


Lesenswert?

Wenn Du Fragen hast, dann kommentiere Deinen Code, wie Du denkst, wie er 
funktionieren soll.

Gibt es eine Doku zu der Lib?
Gibt es die Source zu der Lib?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.