So allgemein kann man deine Frage nicht beantworten, da Standard-C keine Vorstellung von Zeit oder von Interrupts hat.

Je nach Architektur wird die Antwort also ganz verschieden aussehen und ist auch davon abhängig, ob du für "the raw machine" codieren willst, oder ein OS oder eine HAL an deiner Seite hast, deren Funktionen du nutzen und gegen deren Bibliotheken du linken kannst.

Auf einer nackten Maschine musst du die SFRs kennen, die du anpacken musst und das Zeug selber implementieren...