Why doesn't interrupt fire?
SerOut2 shows timer is running.
MPASM
PBP v2.5C
PB PL
Norm
Code:
' 18F452
@ __CONFIG _CONFIG1H, _OSCS_OFF_1H & _HSPLL_OSC_1H
@ __CONFIG _CONFIG2L, _BORV_45_2L & _BOR_ON_2L & _PWRT_ON_2L
@ __CONFIG _CONFIG2H, _WDT_ON_2H
@ __CONFIG _CONFIG4L, _STVR_ON_4L & _LVP_OFF_4L & _DEBUG_OFF_4L
DEFINE OSC 40 ' REQUIRES PLL ' USE 10 MHz CRYSTAL & DECLARE: XTAL = 40
PAUSE 1000 'ALLOW POWER TO STABILIZE
Clear
@wTimer1 = TMR1L
wTimer1 var word EXT
LED VAR PortA.1
i VAR WORD
ADCON1 = %00001111 'ALL_DIGITAL
'********************
'INTERRUPT REGISTER'S
wTIMER1 = 0
RCON.7 = 0 ' 0 DISABLES PRIORITY LEVELS ON INTERRUPTS (16F COMPATABILITY)
T1CON = %10000001 '%xx00xxx = 1:1 PRESCALE
PIE1 = %00000001 'enable TMR1 overflow interrupt
INTCON = %11000000 'enable global and peripheral interrupts
'********************
TRISA.5 = 0
TRISA.4 = 1
TRISA.3 = 1
TRISA.2 = 0
TRISA.1 = 0
TRISA.0 = 0
TRISB=%00000000
TRISC=%00010000 ' xxx1xxxx MSSP SPI data in
TRISD=%00000000
TRISE.2 = 1
TRISE.1 = 1
TRISE.0 = 1
ON INTERRUPT GoTo SET_PORT_INTERRUPT
GOTO MAIN
'**** INTURRUPT ROUTINE ****
Disable ' Disable interrupts during interrupt handler
SET_PORT_INTERRUPT:
SerOut2 PORTA.2,16416,["SET_PORT_INTERRUPT",13]
TOGGLE LED
wTimer1 = 500
INTCON.2 = 0 ' Reset timer interrupt flag
Resume
'**** END INTURRUPT ROUTINE ****
MAIN:
FOR i = 1 TO 100
PAUSE 10
NEXT
SerOut2 PORTA.2,16416,["MAIN LOOP wTimer1 = ",DEC wTimer1,13]
' 16416 = 19200
GOTO MAIN
END
Bookmarks