Цитата(BSVi @ Sep 2 2008, 15:19)

Я немного другой "таймер" имел ввиду - у меня модуль, который из одного аппаратного таймера делает до 255 виртуальных, которые могут быть использованны таким образом
По-моему вы пытаетесь изобрести какую-то ОС, но делаете это как-то через (_*_). Извините за сравнение.

Разделение программы на функциональные модули и применение КА дает вполне нормальные результаты. Раз у вас таймер выполняет системную функцию разделения вычислительных ресурсов по времени (планировщик?), то и делайте этот функционал в одном модуле. А вот вызывать его можно будет из нескольких других. Для этого можно разделить хедер на "внутренний" (для данного модуля) и "внешний" (подключаемый к другим модулям). Во "внутреннем" хедере какие-то константы характерные только для это таймера разместите, например, ту же самую TIMER_1MS_CONST, которая у вас в примере используется. А во "внешнем" типы структур и прототипы вызовов функций, используемых другими модулями из данного.