Hallo Joe

Ich glaube, der Eingang des Tasters hängt frei in der Luft wenn der Taster nicht betätigt ist.

Abhilfe: Entweder du ziehst den PB0 mit einem zusätzlichen Widerstand (10k?) gegen GND, oder du aktivierst den internen PullUp und läßt den Taster gegen GND schalten (mit inverser Logik). In der Initialisierung steht zwar ein Kommentar mit PullUps, aber es werden die selben Bits gesetzt wie im Datenrichtungsregister und das sind ja die Ausgänge. Aber das Bit0 wird nicht gesetzt (PullUp PB0 wenn DDR für PB0 auf Eingang) und der Schalter verbindet mit Vcc, das wird nicht klappen.

PB3/4 sind nicht 3 und 4 sondern 2^3 und 2^4, also 0b00001000 und 0b00010000 bzw: 8 und 16.

Gruß

mic