Hallo, habe die Fehler beseitigt und jetzt geht alles wie gewollt, ich bin davon ausgegangen das OCR0A dann automatisch zu "b" wird da der wert "10" ist, habe dem ganzen wohl zuviel Logisches denken zugemutet und den absatz im AVR Buch vollkommen falsch interpretiert ...
Auf dem Ozi kann ich auch schön sehen wie sich das PWM Signal ändert....

Danke für die Tipps

Code:
  
 #include <avr/io.h>
 #define F_CPU 1200000UL  // 1,2 MHz
 #include <util/delay.h>



 int main (void)
 {
	 DDRB =(1<<PB0);                                                             // Ausgang PB0

	 TCCR0A=(1<<COM0A1) | (1<<WGM00) | (1<<WGM01);     // PWM Phase Korrigieren, OCR0A an TOP setzen
	 TCCR0B=_BV(CS01) ;                                                        // Prescaler 8

	 int a=5;                                                                            // Min Wert für Lichtstärke
	 int b=255                                                                         // Max Wert für Lichtstärke

         while (1) 
			 
{
		 OCR0A = a;                                                              // Startpunkt mit Min Lichtstärke
		                                 
		 if (PINB & (1<<PB3))                                                 // Prüfe auf High Signal an PB3
		
		 {
			if (a <255) a++;                                                // Wenn Wahr dann erhöhe in  5s auf den Wert "b"
			 _delay_ms(5);			 
		 }

		
		 else // (!(PINB & (1<<PB3)))                                     // Prüfe ob PB3 Low wenn Wahr zurück zu "a"
		 
		 {
			 if (a >10) a--;                                                    // Wenn solange der Wert Max gößer als Min dann a--
			 _delay_ms(5);	
		 }
}	 
	 return 0;

 }