Außerdem bringt die while da unten gar nichts, das Program läuft so nur einmal durch.
Ich habe ein do...while daraus gemacht, dann ging es in schleife.... Brachte aber nix, weil es mir um den Taster geht

if(PINB & (1 << PB1))
Habe ich jetzt auch probiert, es funktioniert einfach nichts...

Habe es in das oben gepostete Programm eingeschrieben,
nix passiert.... Wie immer...



Also
main () // Hauptprogramm, startet bei Power ON und Reset
{
DDRB=3; // 2 Ausgänge definieren
PORTB=0b00001000; // Pull-up Widerstand an PB4 auf ein

if (PINB&(1<<PB3)) // <- irgendwie agiert die Funktion so, als ob es hieße, if (true)

{
PORTB=PORTB|(1<<PB0);
waitMs(500);
....