Hi All,

Thanks for all ideas and suggestions

I tried them all except the one toggeling the port since I need to read that flag for different actions in the full program.

Unfortunately, none of them work in a "one second ON - a second OFF" rhythm.

Anyway, the way I found to make it work is to change the Flag BIT var to a BYTE one and sum up the number of PIR1.0 changes into the Flag var to trigger a port TOGGLE.

Still, I don't understand why this code doesn't work (it actually works, but in a 0.5 sec rhythm)
Code:
' PIC 16F690

@ __config _FCMEN_OFF &_IESO_OFF &_CPD_OFF &_WDT_OFF &_INTRC_OSC_NOCLKOUT &_BOR_OFF &_CP_OFF &_PWRTE_OFF &_MCLRE_OFF

OPTION_REG = %10000000
OSCCON     = %01100000 ' Internal oscillator 4MHz
ANSEL      = %00000000 ' analog inputs Channels 0 to 7
ANSELH     = %00000000 ' analog inputs Channels 8 to 11
T1CON      = %00110001 ' <5:4> prescaler 1:8, <1> Timer1 enabled

DEFINE OSC 4

Flag    VAR BIT
CAL_H   CON 11
CAL_L   CON 219

Flag = 0

MAIN:
    IF PIR1.0 THEN
        PIR1.0 = 0
        Flag = Flag + 1
        TMR1H = CAL_H : TMR1L = CAL_L
    ENDIF

    IF Flag THEN
        Flag = 0
        TOGGLE PORTC.0
    ENDIF
    
    GOTO MAIN

END


...while this one will light the LED for one second and switch it OFF for another second (= what I finally want):
Code:
' PIC 16F690

@ __config _FCMEN_OFF &_IESO_OFF &_CPD_OFF &_WDT_OFF &_INTRC_OSC_NOCLKOUT &_BOR_OFF &_CP_OFF &_PWRTE_OFF &_MCLRE_OFF

OPTION_REG = %10000000
OSCCON     = %01100000 ' Internal oscillator 4MHz
ANSEL      = %00000000 ' analog inputs Channels 0 to 7
ANSELH     = %00000000 ' analog inputs Channels 8 to 11
T1CON      = %00110001 ' <5:4> prescaler 1:8, <1> Timer1 enabled

DEFINE OSC 4

Flag    VAR BYTE
CAL_H   CON 11
CAL_L   CON 219

Flag = 0

MAIN:
    IF PIR1.0 THEN
        PIR1.0 = 0
        Flag = Flag + 1
        TMR1H = CAL_H : TMR1L = CAL_L
    ENDIF

    IF Flag > 1 THEN
        Flag = 0
        TOGGLE PORTC.0
    ENDIF
    
    GOTO MAIN

END