HI Again... I have tried again taking the LCDOUT command out of interrupt routine and putting inside the MAIN sub. NOthing! It is running crazy and I've also tried setting postscaler 1:16 or/and prescaler 1:16 and still nothing. Does the code look really correct? What I want is to set any flag every 500ms using TMR2... A little help please?

Thanks again.. Sylvio,

Code:
'------- initial -------------------- 
TMR2_clock   VAR   WORD
OPTION_REG = %00000000 
INTCON 	= %11000000 ' enable interrupts
TRISB = %00000000 ' portb all output
TRISA = %00111111 ' some analog inputs
ANSEL = %00001111 ' some analog inputs
CMCON = %00000111 ' turn of comparators
ADCON1 = %10000000' right justified
T2CON = %00000011 ' TMR2 prescale 1:16 --> TESTED WITH POST and PRESCALER (1:16)
'--------------------------------------------------- 
TMR2_clock = 0
    
    
    Lcdout $FE,1 ' clear screen
    
    PR2 = 194 ' load tmr2 PR2 to reset every 1ms
    PIE1.1 = 1 ' enable TMR2 interrupt
    PIR1.1 = 0 ' disabled interrupt flag - TMR2
    T2CON.2 = 1 ' turn TMR2 on

    ON INTERRUPT GOTO tick

MAIN:
    Lcdout $FE,$A0, DEC TMR2_clock ---> CHANGED
GOTO MAIN

    DISABLE      
tick:
    TMR2_clock = TMR2_clock + 1
    IF TMR2_clock = 500 THEN 
         TMR2_clock = 0
         ' Set some flag..
    ENDIF
    PIR1.1 = 0
resume
    ENABLE