I am trying to inject a 5v signal from a pic12f683, into a pic18f2220, into RBO(INT0). Once the Pic12f683 is switched on the applied 5v should raise the INT0 interrupt flag, go into the high ISR, then go into "LIGHT_PATTERN" turning on an LED. This works when I use the MPLAB simulator, and manually set the interrupt flag in the Main program loop.
I have tried using VCC and a 1000ohm pullup resistor but the LED does not turn on.
I added MOVLW 0x0F
MOVWF ADCON1 to make it digital
Here is the code
Thank you for your assistance
- Code: Select all
#include "p18f2220.inc"
CONFIG OSC = INTIO2 ; Oscillator Selection bits (Internal RC oscillator, port function on RA6 and port function on RA7)
CONFIG FSCM = OFF ; Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor disabled)
CONFIG IESO = OFF ; Internal/External Switchover bit (Internal/External Switchover mode disabled)
CONFIG PWRT = OFF ; Power-up Timer enable bit (PWRT disabled)
CONFIG BOR = OFF ; Brown-out Reset enable bit (Brown-out Reset disabled)
CONFIG BORV = 20 ; Brown-out Reset Voltage bits (VBOR set to 2.0V)
CONFIG WDT = OFF ; Watchdog Timer Enable bit (WDT disabled (control is placed on the SWDTEN bit))
CONFIG WDTPS = 32768 ; Watchdog Timer Postscale Select bits (1:32768)
CONFIG CCP2MX = ON ; CCP2 MUX bit (CCP2 input/output is multiplexed with RC1)
CONFIG MCLRE = OFF ; MCLR Pin Enable bit (MCLR disabled; RE3 input is enabled in 40-pin devices only (PIC18F4X20))
CONFIG STVR = ON ; Stack Full/Underflow Reset Enable bit (Stack full/underflow will cause Reset)
CONFIG LVP = ON ; Single-Supply ICSP Enable bit (Single-Supply ICSP enabled)
CONFIG CP0 = OFF ; Code Protection bit (Block 0 (000200-0007FFh) not code-protected)
CONFIG CP1 = OFF ; Code Protection bit (Block 1 (000800-000FFFh) not code-protected)
CONFIG CPB = OFF ; Boot Block Code Protection bit (Boot block (000000-0001FFh) is not code-protected)
CONFIG CPD = OFF ; Data EEPROM Code Protection bit (Data EEPROM is not code-protected)
CONFIG WRT0 = OFF ; Write Protection bit (Block 0 (000200-0007FFh) not write-protected)
CONFIG WRT1 = OFF ; Write Protection bit (Block 1 (000800-000FFFh) not write-protected)
CONFIG WRTC = OFF ; Configuration Register Write Protection bit (Configuration registers (300000-3000FFh) are not write-protected)
CONFIG WRTB = OFF ; Boot Block Write Protection bit (Boot block (000000-0001FFh) is not write-protected)
CONFIG WRTD = OFF ; Data EEPROM Write Protection bit (Data EEPROM is not write-protected)
CONFIG EBTR0 = OFF ; Table Read Protection bit (Block 0 (000200-0007FFh) not protected from table reads executed in other blocks)
CONFIG EBTR1 = OFF ; Table Read Protection bit (Block 1 (000800-000FFFh) not protected from table reads executed in other blocks)
CONFIG EBTRB = OFF ; Boot Block Table Read Protection bit (Boot block (000000-0001FFh) is not protected from table reads executed in other blocks)
RADIX HEX
CBLOCK 0X0 ;DEFINE REGISTERS REQUIRED
BIGDELAYCTR
DELAYCTR
TESTREG1
ENDC
ORG 0X00 ; RESET VECTOR
GOTO START
ORG 0X08 ; HIGH PRIORITY INTERRUPT VECTOR
GOTO TMR_ISRHIGH
ORG 0X18 ; LOW PRIORITY INTERRUPT VECTOR
GOTO TMR_ISRLOW
START
MOVLW B'00000000'
MOVWF TRISA
MOVWF LATA
MOVWF TRISC
MOVWF LATC
MOVLW B'00000001' ;PORT C
MOVWF TRISB
MOVLW B'00000000'
MOVWF LATB
MOVLW 0x0F
MOVWF ADCON1
CLRF INTCON,0
CLRF INTCON2,0
CLRF INTCON3,0
BCF TESTREG1,0,1
;BSF INTCON2,RBPU; PORTB pull-up enable bit
BSF INTCON,INT0IE,A
BSF INTCON2,INTEDG0,0
BCF INTCON,INT0IF,0
BSF INTCON,GIE,A
MAIN_LOOP
BRA MAIN_LOOP
BCF TESTREG1,0,1
BRA MAIN_LOOP
LIGHT_PATTERN
MOVLW B'00000001'
MOVWF LATA
CALL BIGDELAY
CALL BIGDELAY
MOVLW B'00000000'
MOVWF LATA
BRA BIGDELAY
BRA BIGDELAY
BCF INTCON,INT0IF,0
RETFIE FAST
TMR_ISRHIGH ;HIGH INT SERVICE ROUTINE
MOVF PORTB,0,A
BRA LIGHT_PATTERN
BCF INTCON,INT0IF,0
RETFIE FAST
TMR_ISRLOW ;LOW INT SERVICE ROUTINE
RETFIE FAST
BIGDELAY
MOVLW .50; ORIGINALLY .255
MOVWF BIGDELAYCTR,0
OUTERDELAY
MOVLW .50; ORIGINALLY .255
MOVWF DELAYCTR,0
INNERDELAY
DECFSZ DELAYCTR,1,0
GOTO INNERDELAY
DECFSZ BIGDELAYCTR,1,0
GOTO OUTERDELAY
RETURN
END