Den overflow Interrupt verstehe ich schon irgendwie. Bei einem vorgegebenen Grenzwert bzw. bei überschreitung wird der Interrupt ausgelöst.
Jein. Der Grenzwert wird nicht von dir vorgegeben, sondern ist durch die Hardware gegeben (Overflow=Überlauf). Dieser Interrupt wird aufgerufen, wenn der Zähler den maximalen Wert erreicht hat und wieder bei Null anfängt, bei einem 8-Bit-Zähler also bei 255->0 und bei einem 16-Bit-Zähler bei 65535->0.

Doch den compare Interrupt verstehe ich irgendwie nicht ganz. Wann wird der ausgelöst?
Wenn der Zähler einen von dir vorgegeben Wert erreicht hat. Er geht dann aber nicht auf 0 zurück (einen solchen Modus gibt es aber auch, nennt sich CTC, Clear Timer on Compare), sondern zählt einfach weiter.

Der Overflow-Interrupt erzeugt also die Periode der PWM (mit einer festen Länge), und der Compare-Interrupt erzeugt den Pegelwechsel an einer von dir vorgegebenen Stelle innerhalb der Periode.

Der Timer1 hat 2 compares A und B. Ist es egal welchen man da nimmt.
Ja.

hast du mir vieleicht ein Codeschnipsel dazu, das wäre echt nett.
Den Interrupt-Code habe ich schon aufgeschrieben, das Ändern des Duty-Cycles ist ein einfaches "OCRxx = NeuerWert;", und für die Initialisierung des Timers möchte ich dich doch bitten, selber mal ins Datenblatt zu schauen (ich habe nicht jedes einzelne Konfigurations-Bit im Kopf, außerdem weiß ich gar nicht, um welchen AVR es geht).