Das wird nie funktionieren wenn du ein Bit setzen willst, weil 0 ODER 0 nie 1 geben wird.Wieso kann ich nicht einfach PORTB=PORTB|(0<<PB) setzen??
So ungefähr, nur dass ! ein einzelnes Bit negiert (also aus 0 wird 1 und umgekehrt) und ~ das gleiche aber für ein ganzes Byte macht (das nennt man komplementieren). Also heißt es PORTB = PORTB & ~(1 << PB1);Wie heißt das für mich Laien? PORTB = PORTB & !(1<<PB1) ??
Man benutzt aber die andere Schreibweise, weil sie eben kürzer ist.
Das müsste gehen, wenn du Klammern darum machst und statt PORTB PINB benutzt (PINB ist für den Eingang). (Ja = ist ein Zuweisungsoperator und == ist der Vergleichsoperator.)in C muss ich auch bei if == setzen (?)
Ergo: if PORTB==PORTB|(1<<PB1) wenn ich das so wörtlich eingebe, müsste es klappen?
Besser ist aber:
if(PINB & (1 << PB1))
Lesezeichen