Forum: Mikrocontroller und Digitale Elektronik Alle BITS auf 0 setzen


von timm (Gast)


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

von Max H. (hartl192)


Lesenswert?

1
PORTB = 0;
oder
1
PORTB &= ~(1 << MEINBIT0) & ~(1 << MEINBIT1) & ... & ~(1 << MEINBIT7);

Weiterführende Literatur: Bitmanipulation

von npn (Gast)


Lesenswert?

timm schrieb:
> DDRB = 255; sind alle Bits im Port B auf Ausgang gestellt, richtig ?
>
> Wie setze ich alle bits auf 0?

DDRB = 0;

von Frank M. (ukw) (Moderator) Benutzerseite


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;

von Falk B. (falk)


Lesenswert?

@timm (Gast)

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

Wie kommst du auf die Idee, eine 0 zu schieben? Mit einer 1 geht das 
deutlich besser.

von W.S. (Gast)


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.

von Falk B. (falk)


Lesenswert?

Gibts da keine App für, man?

von Niveau ist keine Handcreme (Gast)


Lesenswert?

npn schrieb:
> timm schrieb:
>> DDRB = 255; sind alle Bits im Port B auf Ausgang gestellt, richtig ?
>>
>> Wie setze ich alle bits auf 0?
>
> DDRB = 0;

Korrekt.

Allerdings denke ich nicht das diese Frage ernst gemeint war. Außer man 
hat einen IQ von 10...

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
Noch kein Account? Hier anmelden.