Hallo Alle.

Umgebung:
Win10-pro, AtmelStudio7 (Version: 7.0.1006), Nanoclone 20 MHz.

Ein peinlicher, versteckter? Programmierfehler macht mir zu schaffen. Verschiedene Änderungen bringen keine Hilfe
Folgender Code soll per HardwarePWM am Pin PB3/OC2A bei meinem bereits mehrfach erfolgreich benutzten Nanoclone die LED mit fade-in und fade-out leuchten lassen. Die Schleife zum fade-in bringt das weiche Aufleuchten der LED, die unmittelbar folgende for-Schleife hält das programmierte delay ein, aber die LED leuchtet hier überhaupt nicht. Ich sehe keinen Fehler :-/ und bitte um Hilfe.

Code:
/* >>
  Stand  ...\.._LED-PWM_02-1\main.c
 =============================================================================== =
  Target MCU        : ATmega 328P TQFP
  Target Hardware   : arduino nano von paradisetronic
  Target cpu-frequ. : 20 MHz Resonator (War 16 MHz Resonator bis 18-07-2016)
 ============================================================================== */
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  #define F_CPU 16000000UL

//      ATMEL-Standard-Bibliotheken
  #include <avr/io.h>
  #include <util/delay.h>
  
//--------------------------------------------------------------
//  Globale variable
  uint8_t i;

//--------------------------------------------------------------
//  Funktionsprototypen
    void PWM_Counter2(void);    //ohne Rückgabewert

// ===  HAUPTProgramm ========================================================== =
  int main ( void )
 {                                //
  DDRB  = 0b00101001;   // Ausgänge PB0, PB3/OC2A, PB5
  PORTB = 0b11010110;   // + Port/Pull Ups (1) aktivieren für unbenutzte Eingänge
  DDRD  = 0b11000000;   // Ausgänge PD6 und PD7
  PORTD = 0b00111111;   //   Pull Ups siehe oben

// - - - - - - - - - - - - - - -
    PWM_Counter2();                // Timer 2 initialisieren
                                //
    while(1)
    {
        for( i=0; i<200; i++)    // for-Schleife 1. Compare Match Register wird
                                //    mit jedem Schleifendurchlauf inkrementiert
        {
            OCR2A    =    i;        // OCR2A
            _delay_ms(  5);
        }

        for( i=200; i>0; i--)    // for-Schleife 2
        {
            OCR2A    =    i;
            _delay_ms(  5);
        }

    }                    // Ende while (1)

    return 0;            // Ende des Hauptprogramms
}

//--------------------------------------------------------------------------------
// Funktionsdefinitionen
// ============================================================================= =
// ==   Aufgabe:    Timer2A für LED-PWM auf Port OC2A/PB3 initialisieren
//                    Es wird also die >>Hardware-PWM<< benutzt, hier auf OCR2A/PB3.
//                  Dokumentation Atmel-8271J-AVR- ATmega-Datasheet_11/2015
// - - - - - - - - - - - - - - - -
  void PWM_Counter2 (void)    // Initialisiere TimerCounter 2 A
 {
  TCCR2A    |=    (1<<COM2A1)|(1<<COM2A0);
                            // Set OC2A on Compare Match, clear OC2A at BOTTOM
  TCCR2A    |=    (1<<WGM20); // PWM Phase Correct, Mode 5, Teil 1
  TCCR2B    |=    (1<<WGM22); // PWM Phase Correct, Mode 5, Teil 2
//
  TCCR2B    |=    (1<<CS21);    // clk/8 (From prescaler)
                            // 16 MHz / 8 => 2 MHz, 1 tick sind dann 0,5 µs
                            // 200 tick sind 50 µs, ==> Leuchtdauer der LED
                            //    bei OCR2A "200" und delay 5 mit ED 10 %

  OCR2A         =200;            // Initialisieren OCR2A Anm: nicht nötig
    
        
  TIMSK2      |= (1<<OCIE2A); // Tmr/Cntr2 CompareA interrupt enabled
    
}