Hallo zusammen, ich benötige eure Hilfe. Ich möchte mit einem Arduino 8 Geräte unterschiedlich ansteuern. Habe eine Hex Zahl welche vorgibt welches Gerät angesteuert werden soll. Wie kann ich dies nun am besten auswerten? z.B. nur Gerät 1 - 001HEX Gerät 3 und 5 - 028HEX alle Geräte - 0FFHEX hoffe auf eure Unterstützung.
Guck dir die Zahlen mal im Binärformat an, da fällt dir bestimmt etwas auf. Und dann fragst du nochmal nach, ob mit 0x28 wirklich Gerät 3 und 5 "angesteuert" werden soll, oder nicht viel eher die Geräte 4 und 6.
Glaube dass ich mich ein wenig falsch ausgedrückt habe. Die slaves sind mit Adressen vordefiniert. Ich sende über i2c eine zeichenfolge welche hinten raus am Slave entschlüsselt wird. Die Zeichenfolge besteht aus: Device.Event.Function XX.XXXX.XX. Die slaves sollen die Funktion nur ausführen wenn der Device Code sich dementsprechend aufschlüsselt.
Patrick schrieb: > Wie kann ich dies nun am besten auswerten? Adressen den Daten zuordnen, Daten geordnet weiterverarbeiten. Auf schwammige Fragen gibt es leider nur schwammige Antworten, sorry :/
veilleicht könnte ja
1 | if |
dein freund sein. dann machst du noch etwas wildes bit-shifting und gut is. so in die richtung
1 | if (zeichenfolge & (0x001 << 6) == (0x001 << 6)) |
2 | {
|
3 | } |
kann man natürlich alles nur raten. nimmst du denn c++? arduino läst darauf schließen. und es gibt einen unterschied zwischen "falsch ausgedrückt" und "garnich erwähnt"
Bitmaske bzw Bitabfrage? Binärformat würde helfen. Lernt man das in der Schule nicht mehr?
Sind die 8 Geräte alles I2C Slaves? Wenn ja: I2C arbeitet ja schon mit individuellen Device-Adressen für jeden Slave. Es ist also nicht nötig, die Adressierung nochmal in den zu übermittelnden Daten zu haben. Ausserdem kann auf dem Bus jeweils immer nur 1 Slave angesprochen werden, wenn du alle 8 ansprechen willst, musst du das sequentiell machen.
Patrick schrieb: > Ich sende über i2c eine zeichenfolge welche hinten raus am Slave > entschlüsselt wird. Du weisst aber schon, dass I2C-Slaves ohnehin eine 7-Bit Adresse haben? Sollte diese ident sein, brauchst du einen I2C-Mux/Switch. leo
Joe F. schrieb: > Ausserdem kann auf dem Bus jeweils immer nur 1 Slave angesprochen > werden, wenn du alle 8 ansprechen willst, musst du das sequentiell > machen. Jain! Denn es gibt ja noch den General Call, dann sollten sich alle angesprochen fühlen. Z.B. die AVR TWI Einheiten können mit Adressmasken umgehen, decken so dann ganze Adressbereiche ab. Beides ist eher unüblich und wird nicht von allen Libs unterstützt. Aber machbar, wenn man ernstlich will.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.