Es geht ja nur darum, dass beim Zuweisen an eine 1-Bit Variable alles
oberhalb des niedrigsten Bits abgeschnitten wird. Also kann man
alternativ auch das eine interessante Bit nach unten schieben:
1 | input.bTaster0 = (PINB & (1<<PINB4)) >> PINB4;
|
Oder, für den invertierten Fall:
1 | input.bTaster0 = ~((PINB & (1<<PINB4)) >> PINB4);
|
Ob das schneller oder langsamer ist müsste man durch Experimentieren
herausfinden. Bei der Zuweisung an das Bitfield muss sowieso geschoben
werden, eventuell kann das der Compiler zusammenfassen.