Прерывание на PIC16F84A с помощью ASSEMBLY, поверните RA1 высоко, когда RB0 прерван - PullRequest
0 голосов
/ 01 июля 2018

Когда я нажимаю кнопку (прерывания), RA1 не включается.

RA0 будет постоянно мигать, он уже установлен в главном.

Изображение для моего аппаратного макета

это код для перенаправления процессора на isr:

ORG 000H        ; reset vector
GOTO MAIN       ; jump to label main during reset or startup
ORG 004H        ; interrupt vector
GOTO INT_RTN        ; jump to label INT_RTN or ISR               

вот как я инициализировал свой MCU:

 BSF STATUS, RP0         ; initialize PIC    
 CLRF TRISA  
 MOVLW 01H                   
 MOVWF TRISB                 
 MOVLW 0CH                       
 MOVWF OPTION_REG        
 BSF OPTION_REG, 6      ; interrupt event during rising edge
 BCF INTCON, INTF       ; clear the RB0/INT interrupt flag
 BSF INTCON, INTE       ; unmask (enable) RB0/INT interrupt source
 BSF INTCON, GIE        ; enable all unmasked interrupt 
 BCF STATUS, RP0        ; set register bank to 0    

и это код для обработки прерываний:

INT_RTN BCF INTCON, GIE     ; disable all unmasked interrupt to prevent 
                            ;interrupt overriding
        BTFSS INTCON, INTF  ; check the RB0/INT interrupt ?ag is ‘1’ 
                            ;  (interrupt source from RB0/INT)
        GOTO EXIT           ; exit ISR if not RB0/INT interrupt
        BSF PORTA, 1            ;sets RA1 to 1 
EXIT    BSF INTCON,  GIE        ; enable all unmasked interrupt
        RETFIE                  ; return from interrupt routine
...