Hallo,

ich habe folgendes Programm für meinen ATMEGA8:

Code:
void pwm2(void){
TCCR1A = (1<<COM1A1) | (1<<COM1B1) | (1<<COM1A0) | (1<<COM1B0) | (1<<WGM11)|(1<<WGM10); // 10 Bit Pwm, invertierend
   TCCR1B = (1<<CS11);      // Prescaler 8
   // Ausgänge für PWM
   PORTB &=  ~(( 1 << PB0 )| ( 1 << PB1 ));  // Motor an Port PB0 und PB1 aus
   OCR1A=1;         // Mindestzeit für PWM1
   OCR1B=1;         // Mindestzeit für PWM2
   // und in Ausgangswerte setzen 
   }
   
void MotorSpeed(unsigned int left_speed, unsigned int right_speed)
{
   PORTB &=  ~(( 1 << PB0 )| ( 1 << PB1 ));  // Motor an Port PB0 und PB1 aus
   OCR1A = left_speed;
   OCR1B = right_speed;
   PORTB |= (( 1 << PB0 )| ( 1 << PB1 ));  // Motor an Port PB0 und PB1 aus
}
Das main siht in etwa so aus:
Code:
int main(void)
{
		
	pwm2();
		
	// Endlosschleife
	while (1)

	{
	
	MotorSpeed( 64, 128);
	
	}

}
Jetzt zu meiner Frage, der Motor dreht sich , aber leider reagiert er auf keine Wertänderungen bei MotorSpeed! nur bei 1 und 1024 bleibt er stehen, aber bei allen werten dazwischen dreht er immer gleich.
Was mache ich falsch??
Danke

Gruß
Fostie