Here is the code how I want to use it. The code shown is one included in interrupt:

Code:
SOFTPWM:
IF A=1 THEN
HIGH LED1
PAUSE 100
LOW LED1
PAUSE 100
ENDIF

IF B=1 THEN
HIGH LED2
PAUSE 100
LOW LED2
PAUSE 100
ENDIF

IF C=1 THEN
HIGH LED3
PAUSE 100
LOW LED3
PAUSE 100
ENDIF

IF A>1 THEN
HIGH LED1
PAUSE 100
LOW LED1
PAUSE 100
ENDIF

IF B>1 THEN
HIGH LED2
PAUSE 100
LOW LED2
PAUSE 100
ENDIF

IF C>1 THEN
HIGH LED3
PAUSE 100
LOW LED3
PAUSE 100
ENDIF

IF A>2 THEN
HIGH LED1
PAUSE 100
LOW LED1
PAUSE 100
ENDIF

IF B>2 THEN
HIGH LED2
PAUSE 100
LOW LED2
PAUSE 100
ENDIF

IF C>2 THEN
HIGH LED3
PAUSE 100
LOW LED3
PAUSE 100
ENDIF

GOTO SOFTPWM
The idea is to realize multichannel software PWM using interrupt. The PAUSE values are just for illustration purposes.

This is just short code, to illustrate how I want to do it.

If A=1 then led only will be lit 1/3 of total time, approx. 33% of duty cycle
If A=2 then led only will be lit 2/3 of total time, approx. 66% of duty cycle

and so on, for other leds. This code allows to have different leds at different duty cycle in one loop. Total there will be 16 leds and 16 duty cycle levels. The meaning of A/B/C variables will be changed externally, outside this loop, so that was the question, will it "sense" variable value change.