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.