Programación Específica > Microcontroladores

 Interrupciones 16f877

(1/1)

TeEstoyMirando:
Hola amigos. Les voy a comentar un problema el cual no se solucionar.

Estoy desarrollando un controlador en el cual utilizo la interrupcion comprendida entre el RB4 Y RB7.
Cuando entra en la interrupcion deseo que me ponga a cero el bit cero RBIF del registro INTCON pero no hay manera. No realiza la operacion.

No entiendo porque no soy capaz de ponerlo a cero si en el mismo manual del controlador dice que para cambiar su valor se realiza mediante software.

La simulacion la realiza con cualquier bit del RB4-RB7 utilizando un escenario y el pulsador TOOGLE

El codigo del programa resumido es este:


--- Código: Text ---  LIST P=16f877&#59; Tipo del PIC  STATUS EQU 03 INTCON EQU 0B PORTB EQU 06 TRISB EQU 06  ORG 00 GOTO INICIO ORG 04 GOTO INTER ORG 05  INICIO BSF STATUS,5 MOVLW 0XFF MOVWF TRISB&#59; Configurar Puerto B BSF INTCON,3&#59; Interrupcion RB47 BSF INTCON,7&#59; Interrupcion General. BCF STATUS,5  INICIO2 SLEEP NOP NOP NOP GOTO INICIO2  INTER BCF INTCON,0&#59;NO ME LA REALIZA....!!!!!! BSF INTCON,7  RETURN&#59; He probado con RETFIE  END   

No tengo ni idea de a que se debe pero tiene toda la pinta de ser una tonteria pero no doy con ello.

lalo_soft:
En vez de borrar directamente el INTCON,0 lee el puerto B (ej: MOVF portB,f) eso borrara el bit por hardware.




Saludos

TeEstoyMirando:
Muchisimas gracias !!!!

Pongo la instruccion "MOVF portB,f" delante del borrado del intcon y plas!! me la borra.

Vaya favor que me haces. Me estaba volviendo loco.

Un saludo.

lalo_soft:
Te aconsejo borrar el bit al final de la rutina de interrupcion para que no generar loop de intrrupcion indeseados

Alternative:
Saludos
Pues que bueno que lalo_soft te ayudara, nadamas te doy unos errores que tienes, que espero te sirvan, cuando realizas una interrupcion se regresa con retfie, no con return, y cuando el colocas el dato de PORTB,f, en realidad es PORTB,0 o PORTB,W


      
      LIST    P=16f877; Tipo del PIC

STATUS       EQU    03
INTCON       EQU    0B
PORTB       EQU    06
TRISB       EQU    06

      ORG    00
      GOTO    INICIO
      ORG    04
      GOTO    INTER
      ORG    05

INICIO       BSF    STATUS,5
      MOVLW    0XFF
      MOVWF    TRISB      ; Configurar Puerto B
      BSF    INTCON,3   ; Interrupcion RB47
      BSF    INTCON,7   ; Interrupcion General.
      BCF    STATUS,5
      
INICIO2    SLEEP    NOP
      NOP
      NOP
      GOTO INICIO2
      
INTER       MOVF PORTB,0
      BCF INTCON,0      ;NO ME LA REALIZA....!!!!!!
      
      BSF INTCON,7
      RETfIE         ; He probado con RETFIE

      END

Navegación

[0] Índice de Mensajes

Ir a la versión completa