Forum: Mikrocontroller und Digitale Elektronik UND gatter programmieren


von D. K. (kirsche)


Lesenswert?

hallo,

ich will gerne ein logisches UND prog.
1
if (!(PINB & 0x02 && PINB & 0x04))

aber iwie geht das nicht...

was habe ich hier falsch?

glg

von Falk B. (falk)


Lesenswert?

1
if (!((PINB & 0x02) && (PINB & 0x04)))

von D. K. (kirsche)


Lesenswert?

aber es ist noch immer ein ODER...

von Falk B. (falk)


Lesenswert?

@  D. Kirschner (kirsche)

>aber es ist noch immer ein ODER...

Nöö, das ist schon UND. Aber lass mich raten, du willst, dass an den 
beiden Pins zwei Tasten gleichzeitg gerückt werden müssen und erkannt 
werden sollen.
Das geht anders, Stichwort Theorem von DeMOrgan ;-)

Siehe Bitmanipulation.
1
if (!(PINB & 0x02) && !(PINB & 0x04))
2
// identisch zu
3
if ((PINB & 0x02) || (PINB & 0x04))

MFG
Falk

von Ansgar K. (paulderbademeister)


Lesenswert?

dein demorgan vermisst glaube ich im zweiten Term ein ausrufezeichen

von D. K. (kirsche)


Lesenswert?

danke

von Falk B. (falk)


Lesenswert?

stimmt, Aufmerksamkeitstest ;-)
1
if (!((PINB & 0x02) || (PINB & 0x04)))

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.