Alle BITS auf 0 setzen

Gast #4031762
Lesenswert?

Mit dem befehl :

DDRB = 255; sind alle Bits im Port B auf Ausgang gestellt, richtig ?

Wie setze ich alle bits auf 0?

(Das klappt nicht:

#define MEINBIT0 0
#define MEINBIT1 1
#define MEINBIT2 2
#define MEINBIT3 3
#define MEINBIT4 4
#define MEINBIT5 5
#define MEINBIT6 6
#define MEINBIT7 7

  PORTB |= ((0 << MEINBIT0) | (0 << MEINBIT1)) | (0 << MEINBIT2)) | (0 
<< MEINBIT3)) | (0 << MEINBIT4)) | (0 << MEINBIT5)) | (0 << MEINBIT6)) | 
(0 << MEINBIT7));

LG
Moderator Persönliche Seite #4031808
Lesenswert?

Max H. schrieb:
>
1
PORTB = 0;
> oder
>
1
PORTB &= ~(1 << MEINBIT0) & ~(1 << MEINBIT1) & ... & ~(1 << MEINBIT7);

Das ist aber äquivalent zu:
1
PORTB &= ~((1 << MEINBIT0) | (1 << MEINBIT1) | ... | (1 << MEINBIT7));

und ist damit von der Schreibweise viel näher an dem obigen Versuch des 
TOs.

Bits setzen:

   PORTX |= MASKE;

Bits löschen:

   PORTX &= ~MASKE;
Gast #4032065
Lesenswert?

timm schrieb:
> PORTB |= ((0 << MEINBIT0) | (0 << MEINBIT1)) | (0 << MEINBIT2)) | (0
> << MEINBIT3)) | (0 << MEINBIT4)) | (0 << MEINBIT5)) | (0 << MEINBIT6)) |
> (0 << MEINBIT7));

Was ist bloß heute los?
Kann denn hier keiner mehr denken?

Also: Was wird wohl passieren, wenn man schreibt

Ergebnis = Ergebnis or 0 or 0 or 0 ..usw. ?? Hei?

Ist das Beherrschen der allereinfachsten logischen Verknüpfungen denn 
nicht mehr en vogue?

W.S.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren