Mahlzeit!

Du könntest mal folgendes probieren:
- erstmal den PWM-Code aus der while-Schleife rausholen,
- das DDRB=hell auch vor die while-Schleife stellen,
- nach jeder Änderung des hell-Wertes OCR1A ändern,
- offensichtlich soll ein Tastendruck ja den entsprechenden PortB-Pin auf logisch null ziehen; dazu müssen aber die internen PullUp-Widerstände von PortB angeschaltet sein. Vor die while-Schleife also noch ein PORTB=0xFF packen.

Ich bin nun kein Experte, aber evtl. hilft Dir das ja weiter.

Grüße
Jens