www.mikrocontroller.net

Forum: Compiler & IDEs was bedeutet "_BV"


Autor: karlheinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was bedeutet das _BV im ausdruck ADCSRA|=_BV(ADIE).

man könnte das ja auch ohne _BV bewerkstelligen.


mfg
kalrheinz

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
_BV ist wohl ein Macro, das so aussieht:

#define _BV(a) ((1 << a))


... das vermute ich jedenfalls mal so.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es steht wohl für "bit value", so ganz genau weiß das keiner
mehr. :-)  "bit mask" wäre eigentlich besser...

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gab's denn man einen Grund für so ein Makro?

IMHO hilft das einem beim Programmieren ja nicht allzu viel:
- Gleiche Menge Text _BV(a) statt (1<<a)
- Aus dem Namen wird niemand schlau (daher kommt ja wohl der Thread)

Aber vielleicht entgeht mir ja was Entscheidendes?

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Es steht wohl für "bit value", so ganz genau weiß das keiner
> mehr. :-)  "bit mask" wäre eigentlich besser...

Bit value passt eigentlich schon. Man gibt die Nummer eines Bits an,
und das Makro gibt dessen Wertigkeit zurück. "mask" passt nicht, da
so eine normalerweise aus mehreren Bits besteht, _BV sich aber immer
nur um ein einzelnes kümmert.

> Gab's denn man einen Grund für so ein Makro?

Ich denke, es sollte der Lesbarkeit dienen.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Gab's denn man einen Grund für so ein Makro?

> Ich denke, es sollte der Lesbarkeit dienen.

Sehe ich auch so.  Die meisten Leute würden ja "(1 << X)"
schreiben (mit Leerzeichen), da ist "_BV(X)" ein wenig
kürzer, vor allem, wenn's um mehrere Bits in einem Byte
geht.  (War auch mal BV statt _BV, aber Marek Michalkiewicz
fand das seinerzeit ein zu großes Kollisionsrisiko mit
Namen im Nutzerprogramm.)

Die Benutzung ist natürlich Geschmackssache, ich würde da
keine Religion draus machen.

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, eine Religion sollte man da genauso wenig draus mache, wie aus der
Position der geschweiften Klammern :)

Ich hatte nur (historisch) mehr dahinter vermutet als anscheinend
dahinter steckt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.