Qual è la filosofia o l'approccio adottato per implementare funzioni altamente critiche in termini di tempo nei microcontrollori, se ce ne sono?
Sto lavorando a un progetto che prevede l'output di una precisa forma d'onda quadra di frequenza variabile. L'ho fatto usando un timer e una funzione di interruzione. Tuttavia, anche per implementarlo correttamente, ho dovuto calibrare l'offset per il numero di cicli di clock eseguiti durante la routine di servizio di interrupt. Immagino che questa precisione sarebbe disturbata dal fatto che un'altra forma d'onda del genere corre accanto (dire che la frequenza deve essere cambiata allo stesso tempo). Avere un microcontrollore ciascuno, per ogni momento in cui una funzione critica sembra dispendiosa.
Facciamo un altro esempio di implementazione di una funzione clock (come in hh: mm: ss). Non riesco a immaginare che ogni microncontroller / computer di alto livello abbia un chip di orologio in tempo reale dedicato esclusivamente per tenere traccia del tempo. Tuttavia, trovo difficile immaginare che venga misurato con precisione utilizzando il core processor, che è impegnato a servire una pletora di funzioni che nel frattempo vengono ad intervalli asincroni. Immagino che il conteggio del tempo avrebbe errori di offset, che cambiano a seconda delle funzioni in esecuzione.
Esiste un processo di progettazione o un approccio per contenere o dare una tolleranza alla precisione raggiungibile? O qualcuno ha qualche suggerimento o suggerimento su dove potrei trovare maggiori informazioni al riguardo?