Matze schrieb:
> Was bedeutet den der erste Klammerausdruck bitte? 00001111 was wird
> dann mit PB0 ?
.... nach links geschoben.
a << b
a wird um b binäre Stellen nach links verschoben.
> und was bedeutet | das hier? oder?
Ja.
> wie wirkt sich dieses oder bitte aus?
Die einzelnen Bits werden miteinander verodert.
A B Ergebnis
-----------------
0 0 0
1 0 1
0 1 1
1 1 1
Nur halt auf die einzelnen Bits. Stell dir deine Zahlen als 8 Bits vor
die schreibst du untereinander
01010101
oder 00101100
-----------
?
und jetzt wendest du für jede Spalte (=jedes Bit) die Oder-Vorschrift
an. Rechts beginnend: 1 oder 0 ergibt 1
0 oder 0 ergibt 0
1 oder 1 ergibt 1
0 oder 1 ergibt 1
....
Das Ergebnis
01010101
oder 00101100
-----------
01111101
(Im Ergbnis ist genau dort eine 1, wo entweder in der ersten Zahl oder
in der zweiten Zahl eine 1 war).
>
> (1<<PB2) ist mir im einzelnen schon klar, PB2 wird auf 1 gesetzt,
Nö.
PB1 ist 1
Für PB0, PB1, PB2 ... existieren #define-ments
#define PB0 0
#define PB1 1
#define PB2 2
also reine Textersetzungen. Überall dort wo du PB2 schreibst, ersetzt
der Compiler (eigentlich der Präprozessor) diesen Text "PB2" durch den
Text "2"
Nachdem er das gemacht hat, wird aus
1 << PB2
das hier
1 << 2
> also
> für sich gesehen so 0000 0100
Stimmt. Aber warum ist das so?
(Das frag ich mich, weil du weiter oben nicht wusstest was << macht)
> PB4 0001 0000
Nein
> was ergibt das dann mit der ersten Klammer in der Summe?
rechne dir die Einzelteile aus, schreib sie untereinander und odere die
Bits zusammen.