Thanks a lot Richard,
The code hereunder works 
BTW, I had to change the config settings (fuses) since you might have copied them for another PIC and generated errors while compiling. Please let me know if I should take care to change some of them.
For the test, I removed the 32,768kHz crystal while running (
) and the LED stops blinking which is correct.
Code:
' ====== FUSES ====================================================================================
' PIC 16F690
@ __config _INTRC_OSC_NOCLKOUT &_WDT_OFF &_PWRTE_OFF &_MCLRE_OFF &_CP_OFF &_CPD_OFF &_BOR_OFF &_IESO_OFF &_FCMEN_OFF
' ====== INTERRUPT SERVICE ROUTINE ================================================================
GOTO INIT: ' Just to place ISR at top of program
DISABLE
ISR: 'if TMR1IF is set (TMR1 has overflown)
toggle PORTB.6 'LED
PIR1.0 = 0 ' clear TMR1IF overflow flag
TMR1H = 0
TMR1L = 0
resume
ENABLE
' ====== INITIALIZE ===============================================================================
INIT:
PIR1.0 = 0 ' clear TMR1IF overflow flag
TMR1H = 0
TMR1L = 0
' ====== DEFINES ==================================================================================
DEFINE OSC 4
' ====== REGISTERS ================================================================================
' 76543210
OPTION_REG = %10000000 ' Pull-Ups disabled
OSCCON = %01100000 ' Internal RC set to 4Mhz
ANSEL = %00000000 ' Analog inputs Channels 0 to 7
ANSELH = %00000000 ' Analog inputs Channels 8 to 11
INTCON = %11000000 ' INTerrupts CONtrol: GIE is ON, PEIE is ON
T1CON = %00111011 ' Timer1 OSC enabled, Timer1 enabled, presc.1:8
PIE1 = %00000001 ' Enable TMR1IF overflow flag
' ====== PROGRAM ==================================================================================
PAUSE 1000 'circuit settle time
ON INTERRUPT GOTO ISR
MAIN:
goto MAIN:
END
Bookmarks