Fast PWM and Atmega1280 problem
Ok I can see a few problems with this code (Im assuming this is your datasheet):


First of all, if you want smooth fading use the 16-bit Timer instead of 8-bit (TCCR1A)
You want Fast PWM however you have it set to Phase Correct (pg 148, you want Mode 14)
You are not indicating the Frequency you want, in Fast PWM mode,
according to the datasheet you need to set the TOP value, to do this
you need to perform some calculation (formula on page 152 at the top).
Once you computed your TOP, the ICR1 needs to be set to that value (use a prescaler if your number is greater than 65535, table on pg 161)
To enable PWM on OC0A (PINB7) you need to set both COM0A1 &amp; COM0A0


Refer to this example, its for the Atmega128 and uses a 16 bit timer. The frequency is 120Hz and my CPU clock speed is 16MHz. Therefore by using the formula I ended up with a TOP (16665) and my prescaler was 8 I believe. 

#include &lt;avr/io.h&gt;
#include &lt;util/delay.h&gt;

int main(void) {

    //Fast PWM, using inverted mode (default low)
    TCCR1A |= 1&lt;&lt;WGM11 | 1&lt;&lt;COM1A1 | 1&lt;&lt;COM1A0;
    TCCR1B |= 1&lt;&lt;WGM12 | 1&lt;&lt;WGM13 | 1&lt;&lt;CS11;

    //Top
    ICR1 = 16665;

    //Set pins to input/output

    DDRB |= 1&lt;&lt;PINB5;

    OCR1A = 0;

    while(1) {
        //continuous loop where everything happens
        int i;

        for(i=0; OCR1A&lt;ICR1; i+=166) {
            OCR1A = i;
            _delay_ms(6);
        }

        for(i=0; i&lt;ICR1; i+=166) {
            OCR1A = ICR1 - i;
            _delay_ms(6);
        }

        OCR1A = 0;
        _delay_ms(500);

    }

}