Hallo zusammen, ich werde aus dem folgenden Code Auszug nicht schlau, es sollte bei MOTOR_ID =1 52 als Ergebnis kommen. Wenn ich darüber nachdenke kommt immer 51 raus!? .equ I2C_ADR = 0x50 .equ MOTOR_ID = 1 ; 1, 2, 3 or 4 ……………… ; i2c init ldi temp1, I2C_ADR+(MOTOR_ID<<1) sts TWAR, temp1 ldi temp1, (1<<TWINT) | (1<<TWEN) | (1<<TWIE) | (1<<TWEA) sts TWCR, temp1 Kommt da jetzt wirklich 52 raus oder habe ich richtig gedacht? (Ich habe mir schon den Bitmanipulationsartikel durchgelesen) Grüße Daniel
Daniel schrieb: > Bitmanipulationsartikel durchgelesen gut. :) > (MOTOR_ID<<1) Dann üben wir das gleich mal. 1, 2 oder noch was ganz anderes? ;)
•<< = Links schieben (Bsp: a<<b ist das gleiche wie a * 2^b) MOTOR_ID ist 1 Wenn ich das aus dem Beispiel ableite: 1 * 2^1 OK, ich hab da was überlesen. Danke für den Denkanstoß
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.