[AVR-GCC] wie erkenn das I/O PIN nicht gesetzt

OP #2269876
Lesenswert?

Hi,
wie schreibt man denn das ein nicht gesetztes eingangs Bit?

Also wenn es gesetzt ist dann sieht das z.B. so aus.

if(PINB & (1<<PINB2))
{dann...;}

und wie sieht das Gegenteil aus? Ich hab es mit

if(PINB & (0<<PINB2))
{dann...;}

versucht, aber das ging nicht.
Gast #2279189
Lesenswert?

deutsche Sprache schwere Sprache schrieb:
> Bitmanipulation + C-Grundlagen
> if( ! ( PINB & (1<<PINB2) ) )
>
> Ob man eine Klammerebene einsparen kann erzählt dir Karl-Heinz (oder
> jemand anders der die Operatorprioritäten kennt).

google: C operator precedence
 - ich mach das auch häufig, ist denke ich kein Disqualifikationsurteil 
:) So gestern erst zur Schreibweise (*var)[i] gebraucht :) (wobei das 
bei näherem Nachdenken logisch ist)

Der Not-Operator ! bindet zusammen mit allen anderen Unären Operatoren 
sehr stark. Jegliche Binäre Operatoren sind schwächer bindend 
angeordnet. Somit ist die Klammerung notwendig :) Nimmst du ein ~ statt 
des ! kannst du sie aber weglassen - Da ich das noch nie gesehen habe 
und selbst auch unschön finde (ganz zu schweigen der Tatsache was der 
Compiler draus macht) würde ich das nicht empfehlen.

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