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.
Lesezeichen