Autor Tema: PIC se cuelga en Interrupcion  (Leído 1922 veces)

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

Desconectado Pinolillo16

  • PIC18
  • ****
  • Mensajes: 324
PIC se cuelga en Interrupcion
« en: 13 de Marzo de 2015, 18:29:54 »
Que tal amigos estoy trabajando en un pequeño proyecto, en el cual solo leo temperatura de unos sensores y muestro un reloj, el problema esta en el momento en que hago andar el reloj, al cabo de unos minutos se traba y deja de ejecutar todo. La parte de configuración de la interrupcion es esta:

Código: ASM
  1. CONFIG_TIMER1
  2.         BSF             RCON,7
  3. ;       CLRF    IPR1
  4. ;       CLRF    IPR2
  5.         BSF             IPR1,0
  6.         CLRF    INTCON
  7.         BSF             PIE1,TMR1IE; ACTIVAMOS INTERRUPCION TIMER 1
  8.         CLRF    T1CON
  9.         BSF             T1CON,7
  10.         BSF             T1CON,5
  11.         BSF             T1CON,4
  12.         BCF             PIR1,TMR1IF; LIMPIAMOS BANDERA
  13. ;       CLRF    CCP1CON
  14.         MOVLW   B'00000000'
  15.         MOVWF   TMR1H
  16.         MOVLW   B'01110100'
  17.         MOVWF   TMR1L
  18.         MOVLW   B'11000000'
  19.         MOVWF   INTCON
  20.         CLRF    SEGUNDOS_ACT
  21.         CLRF    SEGUNDOS_AUXILIAR
  22.  
  23.         CALL    LCD_CLEAR
  24.         CALL    RET_1ms
  25.         BSF             T1CON,TMR1ON
  26.         RETURN

Donde configuro el Timer 1 como temporizador para actualizar los segundos, la parte donde atiendo la interrupcion es esta:

Código: ASM
  1. BAJA_PRIORIDAD
  2.         MOVFF   FSR1,FSR_TEMP
  3.         MOVFF   STATUS,STATUS_TEMP
  4.         MOVFF   W,W_TEMP
  5.         BTFSS   PIR1,TMR1IF
  6.         GOTO    FIN_INTER
  7.         MOVLW   B'00000000'
  8.         MOVWF   TMR1H
  9.         MOVLW   B'01110100'
  10.         MOVWF   TMR1L
  11.         BCF             PIR1,TMR1IF
  12. ;       BCF             T1CON,TMR1ON
  13.         INCF    SEGUNDOS_AUXILIAR,F
  14.        
  15. FIN_INTER
  16.         MOVFF   W_TEMP,W
  17.         MOVFF   STATUS_TEMP,STATUS
  18.         MOVFF   FSR_TEMP,FSR1
  19. ;       BSF             T1CON,TMR1ON
  20.         RETFIE

He estado probando de todo, tanto Baja como Alta Interrupcion los direcciono al mismo lado, ya probe direccionandolos diferente, preguntando por el flag del timer1 pero siempre hace lo mismo. Que me sugieren amigos?


Saludos

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: PIC se cuelga en Interrupcion
« Respuesta #1 en: 14 de Marzo de 2015, 18:41:21 »
Que PIC estas usando ? Para aunque sea buscar el datasheet y ayudarte para ver si se encuentra alguna solucion. Parece ser uno de la familia PIC18 por el set de instrucciones y 2 prioridades de interrupcion.

EDIT:

Con el codigo que pasaste:

Algunas cosas, estas configurando el timer 1 con alta prioridad cuando veo que creo estas haciendo una de "baja prioridad",
Tenes activado ambas prioridades, imagino que tenes otra interrupcion. Y que baja prioridad lo tenes en un ORG 0x18

Adema de eso no veo nada fuera de lo comun, podrias poner que se ponga a 1 una salida cuando entre a una interrupcion y a 0 cuando salga, para saber si realmente se te esta trabando en la interrupcion
« Última modificación: 15 de Marzo de 2015, 20:57:32 por KILLERJC »


 

anything