Timers serial e timer 1 juntos

Ola pessoal.
Estou com algumas duvidas com o timer da serial e a interrupçao 1, olhem como estou fazendo.
void timer_int(void) interrupt 1
{
TR0=0;
TH0= TEMPO_H;
TL0= TEMPO_L;
if (conta_registro ++ ==5){
conta_registro=0;
pv=1;
}
if (conta_timer ++ == carga)
flag_timer = 1; // se contador chegou a 5000 ms flag vira um
TR0=1;
}
//---------------------------------------------------------------------------------------
void prog_timer(void)
{
T2MOD=0X01; \\ nem eu sei pq coloquei isso
TH0= TEMPO_H;
TL0= TEMPO_L;
ET0=1;
EA=1;
TR0=1;
conta_timer=0;
conta_registro=0;
flag_timer = 0;
//pv=1;
}
//------------------------------------------------------------------------------
void serial_init()
{
SCON = 0x50; // BaudRate = 9600 bps
TMOD &= 0x0F;
TMOD |= 0x20;
TH1 = TL1 = 0x0FD;
TR1 = 1;
// activate serial interrupt
IE |= 0xD0;
RI = TI = 0;
}
O meu problema tem sido que as vezes depois de um tempo parado o programa não responde mais, e as vezes a interrupção do timer aciona muito mais cedo.
Desde ja obrigado.
\\Ricardo Doth
Estou com algumas duvidas com o timer da serial e a interrupçao 1, olhem como estou fazendo.
void timer_int(void) interrupt 1
{
TR0=0;
TH0= TEMPO_H;
TL0= TEMPO_L;
if (conta_registro ++ ==5){
conta_registro=0;
pv=1;
}
if (conta_timer ++ == carga)
flag_timer = 1; // se contador chegou a 5000 ms flag vira um
TR0=1;
}
//---------------------------------------------------------------------------------------
void prog_timer(void)
{
T2MOD=0X01; \\ nem eu sei pq coloquei isso

TH0= TEMPO_H;
TL0= TEMPO_L;
ET0=1;
EA=1;
TR0=1;
conta_timer=0;
conta_registro=0;
flag_timer = 0;
//pv=1;
}
//------------------------------------------------------------------------------
void serial_init()
{
SCON = 0x50; // BaudRate = 9600 bps
TMOD &= 0x0F;
TMOD |= 0x20;
TH1 = TL1 = 0x0FD;
TR1 = 1;
// activate serial interrupt
IE |= 0xD0;
RI = TI = 0;
}
O meu problema tem sido que as vezes depois de um tempo parado o programa não responde mais, e as vezes a interrupção do timer aciona muito mais cedo.
Desde ja obrigado.
\\Ricardo Doth