Duda con las interrupciones

#1
Estimad@s: estoy configurando una interrupcion por USART en el 16F877, todo bien hasta ahora, el PIC entra en la interrupcion y hace lo que le pido sin problemas pero cuando quiero llamar a una subrutina desde la interrupcion el PIC se cuelga.
Mi duda es la siguiente: se puede llamar a una subrutina desde una interrupcion??

Gracias, saludos
 
#2
Si se puede pero debes tener cuidado con el PCLATH, antes de llamar a la subrutina puedes cargar el valor del PCLATH para que el salto se produzca a la subrutina que tu quieres. Probablemente ahí esté el error ya que al no modificar el PCLATH el programa está saltando hacia otro lugar y nunca vuelve a la rutina de interrupción.

Revisa eso.
 
#4
Lo que veo es que tienes un problema de concepto:

LA EJECUCION DE UNA ATENCION A UNA INTERRUPCION DEBE DE SER LO MAS RAPIDA POSISBLE.

el hecho de saltar a una subrutina eterniza el proceso, mejor usa Flags en el sistema y llama a la subrutina cuando el flag este activado.
 
#5
gracias por la ayuda, ya esta solucionado, el problema era que la interrupcion estaba en la pagina 1 de programacion y llamaba a una subrutina en la pagina 0, por lo cual, pase toda la interrupcion con sus respectivas subrutinas a la pagina 1 y funciona sin problemas.

saludos
 

Temas similares