Autor Tema: Problema al simular una interrupcion  (Leído 1626 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado aitorsp

  • PIC18
  • ****
  • Mensajes: 296
Problema al simular una interrupcion
« en: 08 de Diciembre de 2009, 05:58:11 »
Hola:

Estoy intentando simular en PBP una interrupcion por cambio de estado en RB y lo que me hace es entrar todo el tiempo en ella y no ejecutar el main. Segun el manual del PIC16F877 se debe hacer una lectura-escritura del PORTB al terminar la interrupcion pero en la ayuda del PBP no lo menciona. Podeis echar un vistazo al codigo?

Un saludo

aitor

Código: [Seleccionar]
' Ejemplo de cómo utilizar la interrupcion INT_RB en PBP

    DEVICE 16F877A
    ALL_DIGITAL=TRUE

SYMBOL RBIF = INTCON.0 ' Flag de interrupcion del puerto B
            SYMBOL RBIE = INTCON.3 ' RB Port Change Interrupt Enable
            SYMBOL GIE = INTCON.7  ' Global Interrupt Enable

    TRISB=%11111111 ' portb entradas
            TRISD=%00000000
PORTD=0
           
INTCON = $88   ' Habilita las interrupciones en los pines RB4 a RB7
            On Interrupt GoTo mi_int ' Define donde salta cuando hay interrupcion

           
 
loop:       RBIF=0
            RBIE=1
GIE=1
            High portd.7               'Enciende el LED
            GoTo loop               'comienza nuevamente el programa


                                'Rutina de Interrupcion

            Disable                 ' Desabilita las interrupciones
mi_int:     GIE=0
            Low portd.7                 ' Apaga el Led
            Pause   500             ' Espera de 1/2 segundo
            RBIF=0            ' Borra la bandera de interrupcion
GIE=1
Resume                  ' vuelve al programa
            Enable                   ' Habilita nuevamente las interrupciones
            end

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema al simular una interrupcion
« Respuesta #1 en: 08 de Diciembre de 2009, 07:45:43 »
Efectivamente debes hacer una lectura del puertoB, aunque no la uses para nada, para limpiar el RBIF.

Desconectado aitorsp

  • PIC18
  • ****
  • Mensajes: 296
Re: Problema al simular una interrupcion
« Respuesta #2 en: 08 de Diciembre de 2009, 07:53:00 »
Efectivamente debes hacer una lectura del puertoB, aunque no la uses para nada, para limpiar el RBIF.

Hola:

gracias por la respuesta...pero es que no se como hacer esa lectura en PBP. Supongo que menos este detalle el codigo que ves estaria correcto no?

saludos

aitor    :8}  :-/

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema al simular una interrupcion
« Respuesta #3 en: 08 de Diciembre de 2009, 09:26:24 »
Yo no uso PBP pero supongo que asignando el PORTB a una variable o utilizandolo en un IF then lo estás leyendo y así se debería borrar el RBIF