Если готовы разбираться в коде, могу для образца дать исходник на ассемблере, с подробными коментариями. В нем организован системный тик и по нему обрабатываются задачи. В итоге все задачи изолированы друг от друга и выполняются так часто как того требует основной алгоритмом, при этом отсчет длинных временных интервалов, это тоже отдельная задача.
Этакая аля микро-операционная система для МК малой производительности.