Hola!
vas a tener que mostrarnos el código para que podamos ayudarte!
Estimado, gracias por tu atencion. Abajo va el codigo. Te comento las pruebas realizadas, con un PIC16F877A programador ICD2 en MPLAB con lengiuaje CCS no me funcionaba en un programa bastante avanzado las interrupciones llegue a probar con al del timer 1 y 0. No entreba en las interrupciones, luego para descartar pruebo en un chip 18F874 y lo mismo. Para descartar que el problema no viene del programa hago una sencilla rutina de timer 1 (la pego abajo) con PIC18F877A y me sucede lo mismo. Ultima prueba, ejecuto la sencilla rutina de timer 1 en el 874 y lo mismo. Ya le desconfio al MPLAB con plugin CCS o al ICD2.
Algo que note: ni bien ejecuto la primera instruccion ya levanta el flag de interrupcion de timer 1 (en una de las veces se metio en la rutina de interrupcion, despues nunca mas) a lo que pongo el flag a 0, cuando desborda el timer1 se levanta el flag pero no salta a la rutina de intrrupcion. Probe con prescaler DIV 8 o DIV 1, no funciona igual.
Bueno eso es todo, va el codigo:
#include "16F874.h" //Incluye el archivo de cabecera para el PIC
#DEVICE ICD=TRUE
//#DEVICE ADC=10
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT//INTRC_IO //oscilador interno a 4Mhz
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
//#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#use delay(clock=4000000) //clock de 4Mhz
int a = 0;
int b = 0;
#INT_TIMER1 //Interrupcion del timer 1
void atiende_timer1(void)
{
a = a + 1;
}
void main ()
{
setup_timer_1 ( T1_DISABLED );
set_timer1(0x0BDC);//Carga del TMR1
enable_interrupts(GLOBAL);//Habilito interrupciones globale
enable_interrupts(INT_TIMER1);//Habilito interrupción particular del TIMER1
setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_1 );
do//Bucle infinito hasta interrupción
{
b = b + 1;
b = b + 1;
}while(b < 200);
}