hi, tut mir leid aber ich habe eine Anfänger Frage: ich habe diese Anweisng gefunden und ich weiss nicht, was das bedeutet: z.B.: PB7 &= ~_BV(x); PB7 |= _BV(x); danke
Da werden Bits gesetzt und geloescht, in Abhaengigkeit einer Funktion.
Danke für die schnelle Anrwort, ich weiss, dass es sich um Setzen und Rücksetzen von Pins in einem Port, aber was ich nicht verstehe ist die Funktion "_Bv()" _Bv() bekommt als Argument einen Bit z.B. PB7 ist als Ausgang definiert, und auf 0 gestzt. dann wird diese Anweisung aufgerufen: PORTB &=~_Bv(PB7); oder PORTB |=_Bv(PB7); wie sieht das Ergebnis in beiden Fällen?? DANKEEEE
Aha. Ja, dann macht die Bv() funktion die Umwandlung von Bitposition nach Bitmuster : 7 --> %10000000 6 --> %01000000 .. 1 --> %00000001 Nein ?
Nochwas. Die Bv() ist keine Laufzeitfunktion, sondern wird vom Compiler ausgewertet. Der Kann das ja, solange es um Konstanten geht. Die Uebersetzung ist eine Tabelle.
"_BV(bit)"ist ein MACRO (beachte die GROSSSCHREIBUNG). Ungefähr so:
1 | #define _BV(bit) (1<<(bit))
|
hth. Jörg
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.