Mein originalercode 16Mhz:
Code:
#include <avr/io.h>       		  //I/O Port definitions 
#include <avr/interrupt.h>  	 //Interrupt macros 
#include <util/twi.h>			//TWI STATUS

#define F_CPU 16000000UL		//CPU Tackt

/*----------------------------------------------------------------------------------------*/
//PWM
/*----------------------------------------------------------------------------------------*/

//1000 = 1ms(links), 1500 = 1,5ms(mitte), 2000 = 2ms(rechts)
volatile int schulter= 0;		
volatile int huefte = 0;			
volatile int knie = 0;	


void pwm_init(int schulter, int huefte, int knie);	//PWM_init Funktion		
void pwm_chance(int schulter, int huefte, int knie);//Anpassen der PWM grössen

/*----------------------------------------------------------------------------------------*/
//MAIN AUFRUF
/*----------------------------------------------------------------------------------------*/

int main(void) 
{
	DDRB = 0xFF;											//B... AUSGANG
	PORTB &= ~((1<<PORTB1) | (1<<PORTB2) | (1<<PORTB3));	//B.. Low

	sei(); 													//Globale Interupts zulassen
	pwm_init(schulter, huefte, knie);						//PWM initialisieren
									


	while(1)
	{

		
	}

}


ISR(TIMER2_OVF_vect)	//Überlaufinterupt Timer2
{
	TCCR2 = 0x00;	//Löschen von Timer2
}

ISR(TIMER1_CAPT_vect)	//Captureinterupt Timer1
{
	TCCR2 = (1<<WGM20) | (1<<WGM21) |(1<<COM21) | (1<<CS22) | (1<<CS20); 	//Setzten von Timer2
}



void pwm_init(int schulter, int huefte, int knie) //PWM initialisieren
{
	TIMSK |= (1<<TICIE1) | (1<<TOIE2); //Interupt initialisieren, freischalten

	//Timer 1 (Port 0/1)
	TCCR1A = (1<<COM1A1)| (1<<COM1B1); 	//Clear OC on Comp Match when up-count, set downcount
	TCCR1B = (1<<WGM13) | (1<<CS11) ;	//PWM Phase abd Freq Correct. Prescaler 8
	ICR1 = 20000;						//Periodendauer Servo 20ms
	OCR1A = schulter;						//Servosignal (Port 0, Schulter)
	OCR1B = huefte;						//Servosignal (PORT 1, Hüfte)

	//Timer 2 (Port 2)
	TCCR2 = (1<<WGM20)| (1<<WGM21) | (1<<COM21) | (1<<CS22) | (1<<CS20);	 //Fast PWM
	OCR2 = (knie/8);							//Servosignal (Port2, Knie)

}
Ich muss den Code noch auf 8mhz anpassen. Ich versuche noch heute dazu zu kommen.