Welche Philosophie oder welchen Ansatz verfolgt man bei der Implementierung hochkritischer Funktionen in Mikrocontrollern, falls vorhanden?
Ich arbeite an einem Projekt, bei dem eine präzise Rechteckwellenform mit unterschiedlicher Frequenz ausgegeben wird. Ich habe dies mit einem Timer und einer Interrupt-Funktion gemacht. Um dies jedoch korrekt zu implementieren, musste ich den Offset für die Anzahl der Taktzyklen kalibrieren, die während der Interrupt-Serviceroutine ausgeführt wurden. Ich würde mir vorstellen, dass diese Präzision gestört würde, wenn eine andere solche Wellenform nebeneinander laufen würde (sagen wir, die Frequenz müsste genau zur gleichen Zeit geändert werden). Es scheint verschwenderisch, für jede solche Zeit einen Mikrocontroller zu haben.
Nehmen Sie ein anderes Beispiel für die Implementierung einer Uhrfunktion (wie in hh: mm: ss). Ich kann mir nicht vorstellen, dass jeder High-Level-Mikrocontroller / Computer über einen dedizierten Echtzeituhr-Chip verfügt, um die Zeit im Auge zu behalten. Es fällt mir jedoch schwer, mir vorzustellen, dass es mit dem Kernprozessor genau gemessen wird, der gerade eine Vielzahl von Funktionen bedient, die in der Zwischenzeit in asynchronen Intervallen ausgeführt werden. Ich würde mir vorstellen, dass die Zeitzählung Offset-Fehler hat, die sich abhängig von den ausgeführten Funktionen ändern.
Gibt es einen Entwurfsprozess oder einen Ansatz, um die erreichbare Präzision einzudämmen oder zu tolerieren? Oder hat jemand Hinweise oder Vorschläge, wo ich weitere Informationen dazu finden könnte?