Amigo jhozate fijate que en el programa principal, cuando regresa de la interrupcion vuelvo a encender el led
void main ()
{
output_high (PIN_B1); setup_timer_1 (T1_INTERNAL | T1_DIV_BY_8);
set_timer1 (3036); //recarga del TMR1 16 bit (256*256)= 65535 microsegundos
//4mhz * preescaler 8 * (65535-3036)=500000 microsegundos, 0,5 segundos
enable_interrupts(INT_TIMER1); //habilita interrupcion timer1
enable_interrupts(global); //habilita interrupción general
while(1);
y aqui ya borro cont;
void interrupcion()
{
if (cont==8) //Cada 8 interrupciones de 4 segundos
{
cont=0;
output_low (PIN_B1);
set_timer1 (3036); //recarga del TMR1
}
else
{
set_timer1 (3036); //recarga del TMR1
cont++;
}
}
o sea por lo que yo entiendo deberia encenderse y apagarse el led a los 4,8,12,16, etc segundos
un saludo