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