timer ISR;
for (index = 0; index < NO_OF_TIMERS) index++)
{
   if (timerStack[index] !=0)
   {
      timerStack[index]--;

where used

if (timer_active)
{
   if (timerStack[MY_OFFSET]== 0}
   {
       timer_active = FALSE;
       whatever need be done when timed out