Autor Tema: reentrada infinita en interrupción de comparador (PIC16F88 & CCS)  (Leído 1911 veces)

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

Desconectado erdanieee

  • PIC10
  • *
  • Mensajes: 44
reentrada infinita en interrupción de comparador (PIC16F88 & CCS)
« en: 16 de Octubre de 2009, 05:08:27 »
Hola a todos,

estoy realizando un proyecto con PIC16f88 en el que utilizo uno de sus comparadores y la interrupción por cambio en el comparador

Código: [Seleccionar]
void init(){
   ...
   setup_comparator(NC_NC_A1_A2)
   enable_interrupts (COMP)
   ...
}


el problema es que una vez se produce el cambio de estado en el comparador y salta la interrupción, el pic continúa reentrado una y otra vez a dicha interrupción, aunque vuelva a cambiar el comparador a su estado original. Pensé que CCS borraba automáticamente el flag de cambio de estado del comparador del registro PIR2, pero por si acaso intenté borrarlo yo manualmente

Código: [Seleccionar]
#INT_COMP
void COMP_isr(){
   ...
   clear_interrupt(COMP)
}

sin embargo, al inspeccionar paso por paso el programa me dí cuenta de que tras ejecutar clear_interrupt(COMP) el registro PIR2 no se modifica!! por lo que el flag cambio de estado de comparador permanece siempre alto y por tanto vuelve a entrar en la interrupción.
   También miré con detenimiento el datasheet, por si el problema era similar al que ocurre con la interrupción de RB (si no se produce lectura o escritura del PORTB vuelve a entrar en la interrupción repetidamente), pero no he encontrado nada al respecto.

Si alguien tubiera alguna idea de qué es lo que está pasando agradecería lo posteara, ya que, de verdad, no se qué más probar!!

Saludos

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: reentrada infinita en interrupción de comparador (PIC16F88 & CCS)
« Respuesta #1 en: 16 de Octubre de 2009, 11:19:18 »
Que versión de CCS tienes? Yo lo he utilizado no he tenido el problemas que cometas, pero puede ser que el compilador no este realizando la escritura/lectura del registro CMCON (Necesario al igual que en la interrupción por cambio de estado del puerto B) antes de salir de la interrupción.


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

Desconectado erdanieee

  • PIC10
  • *
  • Mensajes: 44
Re: reentrada infinita en interrupción de comparador (PIC16F88 & CCS)
« Respuesta #2 en: 16 de Octubre de 2009, 12:58:02 »
efectívamente era eso, justo iba a postearlo pero muchas gracias de todas formas. Tengo la versión más actual, asiq no creo que sea por eso.

saludos!!