Forum: Mikrocontroller und Digitale Elektronik was beudetet _BV ?


von tom (Gast)


Lesenswert?

TIMSK |= _BV(TOIE2) | _BV(TOIE1);

was bedeutet das?

von peter (Gast)


Lesenswert?

_BV(x) steht für BitValue und ist ein veraltetes Makro, welches die 
Wertigkeit eines Bits (wie sie nun mal für den Atmel definiert sind) in 
einen Wert umwandelt

_BV(x) = 2^(x-1) = (1 << x)

MfG  Peter

von yalu (Gast)


Lesenswert?

> _BV(x) = 2^(x-1) = (1 << x)

Fast: _BV(x) = 2^x

wbei man dazu sagen sollte, dass mit ^ der Potenz- und nicht der
Exor-Operator gemeint ist.

Die gesamte Anweisung setzt im Register TIMSK die beiden Bits TOIE2
und TOIE1. Mehr zum Thema Bitmanipulation mit &, | und <<:

  http://www.mikrocontroller.net/articles/Bitmanipulation

@peter:
> _BV ... ist ein veraltetes Makro

Wieso ist das veraltet? Und was ist der moderne Ersatz dafür?
Natürlich kann man auch einfach << nehmen, was wahrscheinlich die
meisten auch tun.

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.