Ne IRQ-Rate von 256 Ticks sollte ok sein, wenn du nicht in der ISR Krieg und Frieden übertragen willst

Konkreter Vorschlag:
  • In der ISR zählst du die IRQs, wahrscheinlich ist nur alle x IRQs was zu tun. Falls x keine 2er-Potenz ist, komm nicht auf die Idee, in der ISR ein % (modulo) anzufangen. Vergleich einfach von Hand:

    SET x := x+1
    IF x >= max
    THEN
    SET x := 0
    ENDIF
  • Falls Ausgabe (oder was auch immer) gemacht werden soll, setze ein Flag und die Applikation kümmert sich drum. PWM-Werte natürlich in der ISR setzen.
  • Die IRQ-Latenz deiner ISRs wird sich aufaddieren. Evtl. ist es angezeigt, andere IRQs (z.B UART) für Interrupts zu öffnen. Ansonsten bekommst du tatsächlich Huddel.