Autor Tema: Problema con Interrupción PIC 16f876  (Leído 3002 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado RoGoN

  • PIC10
  • *
  • Mensajes: 3
Problema con Interrupción PIC 16f876
« en: 27 de Mayo de 2011, 14:55:31 »
Hola amigos, soy nuevo por el foro, un saludo y encantado.

Queria hablaros sobre un tema que me lleva de cabeza, y es que realicé un proyecto anteriormente con el PIC 16F84A, un semáforo concretamente con una interrupción la cual, no se si por suerte o que estaba bien hecho, pero realizaba su finción correctamente.
El problema me vino cuando quise realizarlo con el PIC 16F876 ya que queria hacerlo con un LCD y varias interrupciones mas , pero la función de interrupción, no la hace, es decir no detecta esa interrupción dentro del programa  y no entra a la subrutina para realizarla.

Os adjunto el archivo .asm, para ver si podeis echarme una mano.

Muchas gracias de ante mano. Un saludo



Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema con Interrupción PIC 16f876
« Respuesta #1 en: 27 de Mayo de 2011, 14:59:33 »
¿Que tipo de interrupción utilizas? ¿Configuras adecuadamente los bits que habilitan dicha interrupción? ¿Habilitas el bit de interrupción global? ¿Si es el caso, habilitas el bit de interrupción de periféricos? En éste último bit se diferencian el 876 del 84.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema con Interrupción PIC 16f876
« Respuesta #2 en: 27 de Mayo de 2011, 16:25:14 »
mirando el código rápidamente, no tienes en ningún lado la instrucción RETFIE, para que salga de la interrupción.
Además, verifica que con tantos CALL anidados, no se te esté desbordando la pila.

Desconectado RoGoN

  • PIC10
  • *
  • Mensajes: 3
Re: Problema con Interrupción PIC 16f876
« Respuesta #3 en: 28 de Mayo de 2011, 06:53:57 »
Gracias por responderme suky y pablomanieri.

Suky, la interrupción que quiero utilizar es una interrupción externa con un switch, pienso que los bits están bien habilitados, pero solo "pienso" ya que no soy muy experto en esto de todos modos  en el archivo que adjunto está el código .ASM, por si pudieses mirarlo y echarme una mano.

Pablomanieri, la instrucción RETFIE, falta, muchas gracias, pero creo que no es el problema, ya que directamente no entra en la subrutina de la interrupción que deseo realizar.

Pongo una foto del circuito que tengo hecho.




Si me pudieseis ayudar os agradecería mucho, ya que estoy un poco perdido y me gustaría aprender todo esto.

Desconectado soymoe

  • PIC18
  • ****
  • Mensajes: 456
    • El blog de Moe
Re: Problema con Interrupción PIC 16f876
« Respuesta #4 en: 28 de Mayo de 2011, 13:41:01 »
Es mas dificil tratar de hacer todo de una sola vez. Yo por ejemplo te aconsejaria que pruebes habilitando la interrupcion y probando que entre en ella en el MPLAB que para eso anda bien. No se si el circuito lo estas armando o solo simulando. Las simulaciones son utiles pero en algun punto hay que pasar a armar algo para ver si realmente funciona. Si no borras la bandera de interrupcion solo va a entrar una sola vez a la subrutina de interrrupcion, ese puede ser un error. Divide el problema en partes y hazlas funcionar de a una asi te sera mas facil.

Desconectado RoGoN

  • PIC10
  • *
  • Mensajes: 3
Re: Problema con Interrupción PIC 16f876
« Respuesta #5 en: 29 de Mayo de 2011, 07:58:46 »
Muchas gracias a todos por vuestro tiempo.

Ya arreglé el problema. El problema estaba en que la habilitación de la interrupción no la estaba realizando bien, ya que la tenia del PIC 16F84A, y no es la misma, pero la cambie para tener una interrupción externa y va perfecta.