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
Gast
#724807
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
Gast
#724854
Aha. Ja, dann macht die Bv() funktion die Umwandlung von Bitposition nach Bitmuster : 7 --> %10000000 6 --> %01000000 .. 1 --> %00000001 Nein ?
Gast
#724859
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.
Gast
#724863
"_BV(bit)"ist ein MACRO (beachte die GROSSSCHREIBUNG). Ungefähr so:
1 | |
hth. Jörg
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.