Какая точность нужна для выдержек времени? Обычно программные
таймеры не требуют шести знаков точности. Исходя из потребной
точности/разрешения следует выбрать максимальный интервал
аппаратных прерываний. Если не инкрементировать частные таймеры, то
придется сохранять стартовые значения софтовых таймеров и выполнять
математику сравнения с единым таймером. Оно зачем? Никакой экономии
не будет. Сплошная путаница. А так, назначили пересчет, сбросили
тело таймера в коде (тело придется перенести в глобальную область видимости), сбросили флаг этого таймера и ждете когда флаг взведется.