Hi, you could try something like this. You can set the Timer to fire an interrupt at 2msec for example and you know that the fourth vector will be executed every 8msec, the third every 6msec and so on.
volatile uc vector_cntr;
#pragma vector = TIMER0_OVF0_vect
__interrupt void TIM0_OVF(void)
{
if(++vector_cntr == MAX_VECTOR)
vector_cntr = 1;
switch (vector_cntr)
{
case 1:
{
button_read();
}break;
case 2:
{
dec2bin();
}break;
case 3:
{
update_display();
}break;
case 4:
{
update_relay();
}break;
default:
{}
}
}