Autor Tema: Ayuda interrupcion RA2/INT..... ESTOY DESESPERADO  (Leído 1568 veces)

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

Desconectado damawa

  • PIC10
  • *
  • Mensajes: 4
Ayuda interrupcion RA2/INT..... ESTOY DESESPERADO
« en: 27 de Marzo de 2006, 15:12:00 »
A las buenas, gente. Aqui otro PICmaniaco. Os cuento: estoy trabajando en un proyecto con un PIC16F690 y el PICkit 2. Aun estoy en desarrollo tratando de hacerme con el PIC, haciendo pequeños programitas para controlar los diversos modulos que voy a usar y con la interrupcion del pin RA2/INT no hay forma. Llevo mas de un mes. Por mas que activo la entrada en la simulacion no se me activa el flag INTF y en consecuencia no salta a la rutina de interrupcion. Os pego el codigo:

   list   p=16f690      
   #include   <P16F690.inc>   
   
   __CONFIG    _CP_OFF & _PWRTE_ON & _WDT_OFF &  _XT_OSC & _CPD_OFF & _FCMEN_OFF & _IESO_ON & _MCLRE_OFF & _BOD_OFF

   errorlevel     -302                

   #define   LED                   PORTC,0   
   #define   DETECCION   PORTA,1   
   #define   PASOCERO   PORTA,2   


   ORG   0x000      
     goto   ppal      


   ORG   0x004      
ISR            
   banksel   INTCON      
   btfss   INTCON,INTF   
   goto   fin      
   btfss   DETECCION   
   goto   no120K      
   btfss   LED      
   bsf   LED      
no120K
   banksel   OPTION_REG
   btfss   PASOCERO   
   goto   bajada      
   bcf   OPTION_REG,INTEDG   
   goto   fin      
bajada   bsf   OPTION_REG,INTEDG
fin            
   banksel   INTCON      
   bcf   INTCON,INTF      
   bcf   INTCON,RABIF   
   banksel   PORTA
   movf   PORTA,0
   retfie         
   
ppal            
   banksel   PORTA      
   clrf   PORTA      
   clrf   PORTB      
   clrf   PORTC      
   banksel   TRISA      
   movlw   6h      
   movwf   TRISA      
   clrf   TRISB      
   clrf   TRISC      
   banksel   ANSEL      
   clrf   ANSEL      
   banksel   CM2CON0
   clrf   CM2CON0
   clrf   CM1CON0

   banksel   IOCA      
   clrf   IOCA      
   banksel   IOCB      
   clrf   IOCB
   banksel   OPTION_REG      
   bcf   OPTION_REG,NOT_RABPU
   bsf   OPTION_REG,INTEDG   
   bsf   OPTION_REG,T0CS   
   banksel   INTCON      
   movlw   90h      
   movwf   INTCON
   banksel   PORTA
   movf   PORTA,0
espera   goto   espera      

   END                      

El programa debe encender LED si entra en la interrupcion con DETECCION activo. Ademas cambia el flanco de entrada en interrupcion en cada entrada. PERO NO ENTRA LA INTERRUPCION. Por favor, me hariais un hombre si dais con el problema. Un saludo y gracias de antemano.

Desconectado damawa

  • PIC10
  • *
  • Mensajes: 4
RE: Ayuda interrupcion RA2/INT..... ESTOY DESESPERADO
« Respuesta #1 en: 03 de Abril de 2006, 14:15:00 »
A las buenas, gente. Soy damawa de nuevo, quien mismo escribio la consulta. He dado con el problema, y aqui expongo la experiencia para quien pueda servirle. Resulta que el MPLab Sim, al menos hasta la version que viene con el PICkit 2, tiene incorrectamente configurado el pin RA2/INT en el PIC16F690, que es ademas el PIC que viene con el kit, pues trabaja bien como puerto I/O en el simulador pero este no reconoce en el las interrupciones. Simulado el programa de prueba, con las pertinentes modificaciones, en el PIC16F819 este corre perfectamente. En las compatibilidades del MPLab SIM con el PIC16F690 este la caracteriza beta, no completa. Y, por supuesto, volcando el programa tal cual al PIC1º6F690 en el circuito real el programa corre divinamente, activandose sin problemas las interrupciones.  Un saludo.