Eher so was:
Code:
#include <avr/io.h>
...
  uint16_t i; // Laufvariable
  uint16_t duty = ...; // Duty, mit dem angefangen wird

  for (i=0; i<100; i++)
  {
     duty = fixprod16 (duty, faktor);     
     OCR1A = duty;
  }
Dabei gibt faktor an, um welches Verhältnis sich zwei aufeinander folgende dutys unterscheiden:
64887 --> 1.01
62415 --> 1.05
59578 --> 1.1
46341 --> Wurzel(2)
43690 --> 1.5
32768 --> 2
20860 --> PI
16384 --> 4

etc.