Forum: Compiler & IDEs wieso...


von Markus (Gast)


Lesenswert?

geht das hier:

TIMSK = 1<<TOIE1;

aber das nicht?:

TIMSK |= TOIE1;

danke, markus

von Joerg Wunsch (Gast)


Lesenswert?

Weil Du bei letzterem die 1<< vergessen hast, die ist dort
latürnich genauso nötig.

Als

TIMSK |= 1 << TOIE1;

geht es.  Wenn Du keinen Wert auf Portabilität zu anderen
AVR-Compilern legst, kannst Du auch

TIMSK |= _BV(TOIE1);

schreiben, das kann gerade dann, wenn die rechte Seite etwas
mehr als nur ein Bit umfaßt, bißchen übersichtlicher aussehen
(meine Meinung).  Logischerweise ist _BV() nichts anderes als
das »1 <<«, eben nur schon vordefiniert.

von Markus (Gast)


Lesenswert?

mhh versteh ich net so ganz.

gehen wir mal davon aus das folgender wert im TIMSK steht:

00000000

und wir das ganze mit 0x07 verodern.

dann sollte doch letzendlich

01000000 im TIMSK stehen.

code:

TIMSK = TIMSK | 0x07;

tuts aber nicht :(

mit normalen registern gehts ja auch.

von Markus (Gast)


Lesenswert?

totaler denk fehler ..:).. sorry hat sich erledigt...

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
Noch kein Account? Hier anmelden.