Forum: Mikrocontroller und Digitale Elektronik Bitmaske Erklärung


von Tom (Gast)


Lesenswert?

möchte in einer while schlaufe verhängen, solange ein Bit nicht null 
ist. hier mein ansatz:

while(PORTD&(1<<PD1));

geht das so?

von Tom (Gast)


Lesenswert?

2. Frage
unter artikel habe ich folgendes gefunden:


// prüfe ob Bit 4 in der Variable tmp gesetzt ist
    if (tmp & 0x10) {
       // hier die Anweisungen, wenn das Bit gesetzt ist
    }

das resultat in der klammer gibt ja dann wenn das bit gestzt ist sowas: 
00000010 oder? was ich nicht kapiere ist man müsste doch noch eine 
Bedingung anhängen:   (tmp & 0x10)==0x01 oder?

von Frank N. (arm-fan)


Lesenswert?

zur 1. Frage: Ja geht so.
zur 2. Frage: Es wird ausgewertet ob das Ergebnis wahr, d.h. ungleich
Null ist.

if (tmp & 0x10) {}
if ((tmp & 0x10) != 0) {}
if ((tmp & 0x10) == 0x10) {}

ist alles das selbe.

von Tom (Gast)


Lesenswert?

das heistt, alles was ungleich nulll ist ist immer true?

von Frank N. (arm-fan)


Lesenswert?

Korrekt!

von Christian T. (shuzz)


Lesenswert?

Aber nur in C... ;)

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Tom wrote:
> möchte in einer while schlaufe verhängen, solange ein Bit nicht null
> ist. hier mein ansatz:
>
> while(PORTD&(1<<PD1));
>
> geht das so?

Wodurch soll sich das Bit ändern? Nicht dass du in die Falle mit PORTD 
und PIND tappst, wie schon Tausende vor dir ;-)

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.