Hello all. I cannot persuade TMR1 interrupt to toggle an LED. I tried the "ON INTERRUPT...." method and that works fine, toggling the LED 3 or 4 times a second. But I cannot work out how to do this manually by polling the TMR1IF (PIR1.0) flag. I wonder if anyone has any ideas? I have spend hours reading through threads (including the Olympic Timer example thread) but to no avail. Presumably the solution is simple, but I can't work out what it is.

Many thanks in advance.

Jonathan.

Code:
define OSC 20

TRISB = %11101111        ' PORTB.4 output
led var PORTB.4
led = 0

INTCON = 0
PIR1 = $00        ' clear interupt flags
TMR1H = 0
TMR1L = 0
T1CON = %00110001 ' TMR1 on, prescaler=1:8, clock=(Fosc/4)
INTCON = $C0    ' Enable global and peripheral interupts
PIE1 = $01      ' Enable TMR1 overflow interrupt 

main:
    if PIR1.0 then
        led = not led
        TMR1H = 0        ' reset timer1
        TMR1L = 0
        PIR1 = $00        ' clear interrupt flags
    endif
    goto main   
end