Das wäre eine Möglichkeit. Es kommt ja auch darauf an, welche Auflösung die PWM haben soll.Zitat von albundy
Du brauchst zwei Takte:
1) Ein Takt für die PWM, Frequenz f1. Dieser führt die im Artikel codierte Aktion aus. Dies sollte in möglichst äquidistanten Schritten erfolgen, um die PWM-Frequemz sicher zu stellen und den Jitter klein zu halten. Der Code ist nicht aufwändig und fühlt sich in einer ISR nicht unwohl. Für die Frequenz der PWM gilt dann f_PWM = f1 / MAX.
2) Ein Takt, mit dem du DUTY hochlaufen lässt. Dieser ist bei dir 10ms und nach 1.5s bist du bei 100%. Das kann unabhängig (asynchron) zu 1) geschehen.
Falls in einer ISR kein Platz ist oder das zu hohe Last macht wegen der IRQ-Rate, geht evtl. auch eine doppelt geschachtelte Schleife, aber dann wird die Nebenläufigkeit mit deinen anderen Aufgaben behindert.
Lesezeichen