Как-то сложно для микроконтроллеров. Легче вдуплить все таймеры в
массив, в прерывании отнять 1 от значения каждого софт-таймера и
если ноль вызвать калбек функцию (при её наличии) Но это не единственный вариант, и для переключения нескольких сигналов в реализации какой-то времянки далеко не лучший. (Это я себя критикую)