for (int j = 0; j<30; j++) {
for (int j = 0; j<30; j++) {
das leben ist hart, aber wir müssen da durch.
ja, klar, daran liegt es nicht, das war ein typo und war hier nur blind eingefügt gewesen.for (int j = 0; j<30; j++)
ansonsten, wie gesagt,
Für alle Tipps bin ich natürlich offen, aber der, der sie vorschlägt, müsste schon in der Lage sein, die Verbindung ebenfalls herzustellen und bei sich selber vor Ort zu testen (d.h. er müsste auch einen Raspi und einen Arduino besitzen und sie entsprechend verbinden und seinen eigenen - bzw. unseren gemeinsamen, auf einander abgestimmten - Code testen können).
update:
habe jetzt einen ersten Testcode als Arbeitsgrundlage: mein eigener Arduino Slave code und ein zusätzlicher Raspi Master code (eine einfache Raspi-Mustervorlage dafür hatte Gordon Henderson gepostet und wurde entsprechend angepasst) - ist aber noch extrem langsam und muss noch dringend schneller gemacht werden:
http://www.mindstormsforum.de/viewto...tart=15#p67908
Verbesserungs- und Beschleunigungs-Tipps von Raspi-Profis werden gern entgegengenommen!
Hallo,
++j und j++
Sind hier identisch: j = j+1
Unterschiede gibt es, wenn j verwendet wird.
c[j++] --> c[j]; j=j+1;
c[++j] --> c[j+1]; j=j+1;
a = c[--i]; und c[i++] = a; können eigentlich alle CPUs als jeweils einzelnen Assembler-Befehl ausführen (PUSH und POP). Manchmal auch als a = c[i--]; und c[++i] = a; implementiert.
Bei manchen CPUs beschränkt sich diese Adressierungsart nicht nur auf den Stack und kann auch symmetrisch sein.
MfG Peter(TOO)
Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?
danke, aber was soll das jetzt? Die Frage war nicht nach pre- oder post-increment, das ist mir sonnenklar, sondern nach einem Code, der eine schnelle I2C Verbindung zwischen Raspi-Master und Arduino-Slave herstellt.
Ausgangsbasis kann der obige Code im oben verlinkten Post sein
- immerhin gibt es ja inzwischen einen, der zumindest funktioniert, wenn auch extremst langsam - :
http://www.mindstormsforum.de/viewto...tart=15#p67908
aber wenn Vorschläge, dann bitte selbst getestet: es ist das exakte Zusammenspiel der beiden i2c-Protokolle, das Probleme macht!
(Und bitte erst recht keine OT-Posts.)
Denn, wie gesagt:
Für alle Tipps bin ich natürlich offen, aber der, der sie vorschlägt, müsste schon in der Lage sein, die Verbindung ebenfalls herzustellen und bei sich selber vor Ort zu testen (d.h. er müsste auch einen Raspi und einen Arduino besitzen und sie entsprechend verbinden und seinen eigenen - bzw. unseren gemeinsamen, auf einander abgestimmten - Code testen können).
macht das doch bitte per PM aus! solche OT posts sprengen ständig den Informationsfluss!
also nochmal:
Die Frage war nach einem Code, der eine schnelle I2C Verbindung zwischen Raspi-Master und Arduino-Slave herstellt.
Ausgangsbasis kann der obige Code im oben verlinkten Post sein
- immerhin gibt es ja inzwischen einen, der zumindest funktioniert, wenn auch extremst langsam - :
http://www.mindstormsforum.de/viewto...tart=15#p67908
aber wenn Vorschläge, dann bitte selbst getestet: es ist das exakte Zusammenspiel der beiden i2c-Protokolle, das Probleme macht!
(Und bitte erst recht keine OT-Posts.)
Denn, wie gesagt:
Für alle Tipps bin ich natürlich offen, aber der, der sie vorschlägt, müsste schon in der Lage sein, die Verbindung ebenfalls herzustellen und bei sich selber vor Ort zu testen (d.h. er müsste auch einen Raspi und einen Arduino besitzen und sie entsprechend verbinden und seinen eigenen - bzw. unseren gemeinsamen, auf einander abgestimmten - Code testen können).
hmmm.... scheint, als gäbe es hier im Forum keine wirklichen Fachleute für I2C zwischen Raspi und Arduino.... :-/
Hallo,
wenn das Beispiel zu langsam ist, würde ich die Pausen verkürzen. Aus sleep(1) usleep(100), aus delay(2) delay(1), oder beim Senden vom ARDUINO ganz auf das delay verzichten.
Wenn das Herz involviert ist, steht die Logik außen vor! \/
wie gesagt:
Augenblicklich überträgt der Raspi-Master zum Arduino und zurück gerade mal 2 arrays pro Sekunde (!!), per Arduino-Master ist das gleiche Programm > 30x so schnell. Da wird eine Verkürzung um ein paar millis oder micros nichts ausmachen.Für alle Tipps bin ich natürlich offen, aber der, der sie vorschlägt, müsste schon in der Lage sein, die Verbindung ebenfalls herzustellen und bei sich selber vor Ort zu testen (d.h. er müsste auch einen Raspi und einen Arduino besitzen und sie entsprechend verbinden und seinen eigenen - bzw. unseren gemeinsamen, auf einander abgestimmten - Code testen können).
Es liegt vielmehr am Zusammenspiel der beiden i2c-Implementierungen, dem langsamen Arduino und dem prinzipiell schnelleren Raspi, der aber clock-stretching nicht verträgt - damit bricht die Kommunikation ein. Außerdem braucht der Arduino ZWINGEND delays, um überhaupt auf requests reagieren zu können. Die Sache ist also recht kniffelig.
Nicht umsonst habe ich daher oben geschrieben:
vermutlich hast du deinen Vorschlag also nicht getestet...?Für alle Tipps bin ich natürlich offen, aber der, der sie vorschlägt, müsste schon in der Lage sein, die Verbindung ebenfalls herzustellen und bei sich selber vor Ort zu testen (d.h. er müsste auch einen Raspi und einen Arduino besitzen und sie entsprechend verbinden und seinen eigenen - bzw. unseren gemeinsamen, auf einander abgestimmten - Code testen können).
Lesezeichen