Hi,

danke für die schnelle Antwort. Mein Code sieht jetzt so aus:

Code:
#define PWM_init             DDRD= _BV(PD4) | _BV(PD5);
#define upcounting           TCCR1A = _BV(COM1A0) | _BV(COM1A1)   
#define downcounting         TCCR1A |= _BV(COM1A1)               
#define T_prescaler_256      TCCR1B |= _BV(CS12)
#define T_stop               TCCR1B = ~_BV(CS12) & ~_BV(CS11) & ~_BV(CS10)     

void main(void){
         ....
   outp(0xFF, DDRC); // Alle Ports von C als Output setzen
   outp(0xFF, PORTC); // Alle Ports 0
   outp(0xFF, DDRD); // Alle Ports von D als Output setzen
   outp(0xFF, PORTD); // Alle Ports 0


   PWM_init;
   upcounting;

      sbi(PORTC, 6);//Drehrichtung
      cbi(PORTC, 7);//Drehrichtung
      sbi(PORTD, 4);
                             
      T_prescaler_256;
      for(i = 0; i < 1023; ++i){
      OCR1B= i;
      OCR1A= i;
      ms_sleep(30);
                }
         ....
}
Es funktioniert aber immer noch nicht. Ich habe eine printf()-Ausgabe in ndie FOR-Schleife gesetzt, die mir den Wert von i Anzeigt. Die Schleife wird ausgeführt, es passiert aber nichts. Irgendwann läuft sie ab und es schert niemanden.
Ich hoffe, dass ich nicht irgenein Register vergessen habe.
Danke!