Hi Ich hab mir deinen Code nicht angegschaut...
Ich hab selber grad viel Hacke für die uni....

Zur 1. Frage: Ja sicher im Fast PWM Mode Zählt er nur hinauf (bis TOP)und fängt dann wieder bei BOTTOM an.
Hingegen beim Phase Correct PWM Zählt er hinauf und dann wieder hinunter... --> prinzipiell kann er doppelt so schnell zählen... (so verstehst auch ich)

Ich kann dir nur sagen wie ichs gelöst hab.

Ich hab ihn im Mode 14 von 0 bis ICR1 (bei mir 1199) zählen lassen...
Beim Output Compare sprich (OCR1A bei mir = 799) schaltet er den Ausgang auf High.
Interrupts braucht man dafür keine !

zum vergleich mein Code:

Code:
int main()
{
	// initialize 16-Bit_Timer for fast_PWM
        TCCR1A = 0xC2;  //init Timer
	TCCR1B = 0x19;
	OCR1A  = 799;   //Toggle Value
	ICR1   = 1199;  //Top Value
	
	// initialize PD5-PORT for output
	DDRD |= (1<<PD5);

	for(;;) {
	}
}
wie ich die Bits genau gesetzt habe musst dir selber raussuchen ich hab das ganze auf zetteln.... ich muss das mal schön schreiben aber hab jetzt keine Zeit...

Ich hoff das Hilft dir weiter....

mfg lightwaver