hallo frankz,
das ist seltsam.. ich habe eben mit deinem code gespielt, und dabei festgestellt, dass es funktioniert, wenn man das hier macht:

DDRB = (1<<PORTB1)|(1<<PORTB3);
oder DDRB = (1<<DDB1)|(1<<DDB3);

pb1 ist bei mir die led, pb3 der taster, beide gehen auf masse.

kann mir das jmd erklären? steh irgendwie aufm schlauch..

im datenblatt steht doch explizit:
The DDxn bit in the DDRx Register selects the direction of this pin. If DDxn is written logic one, Pxn is configured as an output pin. If DDxn is written logic zero, Pxn is configured as an input pin.
gruesse von der etwas verwirrten katz