@JoSch1337
@wkrug: kannst du mir erklären was ui_pwm bei dir machen und wie man nun konkret den pwm setzt?
dein code compiliert bei mir nicht - es sind zig namen undeclared.
ui_pwm[0..3] sind die Impulsdauern für die Servokanäle 1...4.
Ich hab die mal einfach willkürlich auf beliebige Werte gesetzt.
Gültige Werte sollten im Bereich von 1000...2000 bzw. 1150...1950 liegen.
Das gilt für einen 8MHz Quarz und Taktteiler 8 für Timer 1.
Bei 16MHz sind die Werte 2000...4000 einzugeben und auch der Wert für uc_cycle zu verdoppeln.

Der Code ist für den C - Compiler "CodeVision AVR" gemacht ist. Mein Codevision compiliert ihn ohne Fehlermeldung.
Die Einstellwerte für die Register des Timers 1 sind auch einwandfrei auslesbar.
Code:
TCCR1A=0x00;
TCCR1B=0x02;
....
TIMSK=0x18;
In den Bemerkungen oberhalb des Abschnittes wird auch genau erklärt was da eigentlich eingestellt wird.
Die paar Zeilen Code auf AVR-GCC anzupassen sollte aber auch nicht wirklich ein Problem sein - oder?
SEI ist ein Assembler Befehl, der Global die Interrupts freigibt. Wie macht AVR - GCC das ?
Das Include File passt natürlich auch nicht, es muss natürlich das passende von AVR GCC genommen werden.