16f628A problema con interrupciones no funciona

#1
buenas como estan miren ya no se que hacer tengo un 16F628A nuevo he intentado colocarle esta rutina

#int_TIMER1
void TIMER1_isr(void)
{
set_timer1(3036);

output_toggle(pin_a1);


}



void main()
{

set_tris_a(0x00);
port_b_pullups (0xff);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
set_timer1(3036);


//Setup_Oscillator parameter not selected from Intr Oscillator Config tab

// TODO: USER CODE!!
while(1){

output_toggle(pin_a0);
delay_ms(300);
}
}


pero el pic no me hace nada! tiene un reloj de 4Mhz


lo qu hice fue probarlo con una rutina sin timer y interrupcion simple como:

void main()
{
set_tris_a (0x00); //puerto a como salida
set_tris_b (0xff); // puerto b como entrada


while(1){
output_toggle(pin_A0);
delay_ms(300);

}



}

y si funciona. sera que el pic esta malo?
 
#2
El programa está bien.

- Estás metiendo la gamba en otra cosa: 99.2%
- Pin A1 quemado: 0.8%
 
#5
bueno me respondo a mi mismo. Buscando encontré un ejemplo aquí mismo hecho por george.manson.69 (https://www.forosdeelectronica.com/f24/programas-hechos-mplab-20784/) en el ejemplo resulta que utilizan el reloj interno, lo intente con mi programa y así si funcionan las interrupciones

#include <16F628A.h>

#FUSES NOWDT //No Watch Dog Timer
#FUSES PUT //Power Up Timer
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

#use delay(int=4000000)


pero sigue el problema del por que con el oscilador externo no funcionan las interrupciones.

otra cosa el mismo programa lo implemente en un 16F886 con oscilador externo pero de 20Mhz y funciona perfecto.
 
Arriba