Hallo,
das Rechnen ist sehr einfach.
Du hast die Frequenz vom Hauptquarz, meisten f_h = 16 000 000 Hertz
Mit dem Prescaler schlägt dein Timer mit einem Wert von f_t = fh /
Prescaler
Nach 0 < x < 2^16 (Entweder mit dem Input Compare Register [+Der TCNT
kann von der Hardware resettet werden oder nach jedem Overflow schon
einen Werte in TCNT schreiben [+ Input Compare Register kann
anderweitig verwendet werden; -zusätliche Anweiseung] ) erfolgt dann
halt der Overflow.
Als Frequenz f_i mit der das Interrupt aufgerufen wird ergibt sich so:
f_i = f_h / ( Prescaler * x )
fertig!
Persönlich mache ich dann so, wenn ich für eine f_i passende Werte
Suche, dass ich die möglichst großen Prescaler ausprobiere und dann
versuche entweder mit 8 Bit auszukommen -> x < 2^8 oder 16 Bit
auszukommen -> x <2^16. Um das in diesem Bereich einfach einstellen zu
können und um eine bessere Genauigkeit zu bekommen, versuche ich x
immer möglichst groß zu machen.
Wenn man bei einem Interrupt immer nur Umschaltet ist die Frequenz des
Signals natürlich nur f_i/2.
Bei PWM Hardwareeinheiten, stehen für die einzelnen Modi die Formel so
ähnlich schon direkt im Datenblatt.
Viele Grüße
Helge