Jemand eine Idee??? Ich kommt nicht mehr weiter...
Wenn ein Slave vom Master angesprochen wird, besetzt dann vielleicht dieser Slave für einen Durchlauf den Bus, damit der Master erst nach einem Durchlauf den nächsten Slave ansprechen kann? Im Moment kann ich es mir nicht anderes erklären...
Was meint ihr?
Gibt es vielleicht eine Möglichkeit einen Wert an alles Slaves gleichzeitig zusenden?
Also einen Befehl der allen Slaves einen Wert mitteilt.
__________________________________________________ _____________
http://pe-products.jimdo.com/
Jemand eine Idee??? Ich kommt nicht mehr weiter...
__________________________________________________ _____________
http://pe-products.jimdo.com/
Hallo,
im I²C-Protokoll ist ein sogenannter General Call vorgesehen (senden an die Adresse 0), damit kann jeder Slave gleichzeitig angesprochen werden.
Du könntest also zuerst an jeden Slave wie bisher die Bewegungsdaten schicken und sie damit "scharf" machen und im Anschluß den Bewegungsablauf mit einem GC starten.
mfg
Genau nach so etwas habe ich gesucht. Danke!!!
Probiere ich sofort aus, sobald ich zu Hause bin :-D
Einfach an die Adresse 0 senden?
__________________________________________________ _____________
http://pe-products.jimdo.com/
Hallo,
ja, einfach an Adresse 0 senden!
Hier sind die Original-I²C-Spezifikationen, der General Call ist im Detail auf Seite 16 beschrieben: http://www.nxp.com/documents/other/39340011.pdf
mfg
Als Adresse gebe ich beim Master &H0 an,
aber es geht nicht. Slaves ragieren nicht...
Also stimmt doch irgendetwas mit der Adressierung nicht oder?
__________________________________________________ _____________
http://pe-products.jimdo.com/
Hallo,
Damit der Slave GCs auswertet, muss in seiner Adresse Bit 0 gesetzt sein (vgl. Datenblatt Atmega32 S.179-180, TWI Slave Adress Register).
Weiters steht im TWI Status Register bei erkanntem GC ein anderer Wert als bei normalen Übertragungen (vgl. Datenblatt Atmega32 S.191, Table 76 - Slave Receiver Status Codes).
mfg
Sehr cool:-D Danke!!!
Das funktioniert jetzt schon mal so wie ich es mir vorgestellt habe!
Jetzt noch die Servos mit Timern steuern und dann will ich mich an die Interrupts machen...
Grüße High Light
__________________________________________________ _____________
http://pe-products.jimdo.com/
Hier mal noch ein kleines Video von Susi...
http://www.myvideo.de/watch/8216409/Hexabot_Susi
Wie man sieht, ist sie aufgebockt, da die Spannung nach ca 20-30s einbricht
und so die Servos zusammenklappen. Dies bedeutet, dass sie alle 20-30s auf
den Boden fällt...aber das ist ein anderes Problem!!!
Jetzt geht es in erster Stelle um die Servoansteuerung mit Timern...
Grüße High Light
__________________________________________________ _____________
http://pe-products.jimdo.com/
Ohne jetzt alles gelesen zu haben, hast du mal die Spannung gemessen @High Light? Nicht mit einem Multimeter sondern mit einem Oszi?
So ein Verhalten kenn ich von meinem Hexa, wenn die Servos Strom ziehen, dann bricht die Logikspannung ein und der Roboter sackt in sich zusammen. Das Problem lässt sich aber sehr leicht lösen indem man Logik und Leistungselektronik voneinander trennt. Mein Phoenix² hat deswegen 7,4V Akku für die Servos + 9V Block für die Logik (über einen Spannungsregler auf 5V gewandelt).
Lesezeichen