Der Prozessor muss etwas ausführen. Sie werden immer eine "Endlosschleife" haben, selbst wenn Sie in einem Interrupt-Handler arbeiten.
Die beste Lösung hängt davon ab, was Sie genau tun möchten.
Der Hauptvorteil der Verwendung von Interrupts besteht darin, dass Sie Ereignisse in Echtzeit bedienen können, während Ihr Hauptprogramm etwas anderes ausführt. Mit Timer-Interrupts können Sie bestimmte periodische Aktivitäten auf einer ziemlich genauen Zeitbasis ausführen, während Sie eine andere Verarbeitung durchführen.
Für die meisten Steueralgorithmen ist es nützlich, eine Art Zeitbasis (oder feste Frequenz) zu haben. Wenn das alles ist, was Ihre CPU tut, können Sie dies problemlos ohne Unterbrechungen tun, indem Sie entweder die Anzahl der Zyklen / Anweisungen in Ihrem Regelkreis steuern oder den Timer abfragen. Beide Methoden wären einfacher und effizienter als die Verwendung von Interrupts. Interrupts sind in komplexeren Systemen nützlicher, die viele Dinge gleichzeitig ausführen (E / A, Zeitmessung, Zeitplanung usw.).
Wenn Sie mit der Endlosschleife arbeiten, ohne den Timer abzufragen oder die Zeit zu kalibrieren, die zum Ausführen einer Iteration der Schleife benötigt wird, müssen Sie auf Situationen achten, in denen das Hinzufügen von mehr Code in Ihrer Schleife das Timing und das Verhalten Ihres Steuerungssystems ändert.
Wenn Sie Ihren Steueralgorithmus in einem Timer-Interrupt implementieren, müssen Sie darauf achten, dass Sie nicht versuchen, mehr Arbeit auszuführen, als die CPU in einem Zeit- "Slot" verarbeiten kann, da dies wiederum das Verhalten Ihres Steuerungssystems beeinflusst.