Am I trying to use a variable or pass a value by reference or by value?

aarg:
No, pwmpin is assigned to the led object when it is created:

k++

Downwardflight:
I think I meant what are you telling the processor when you type led.update().
You use
led.begin()
led.update()
led.target()

I don't speak when I type! :wink:

led is a Fade object

begin(), update() and setTarget() are each member functions of the Fade class.

update() seeks to always move the fading towards the current set point but without any calls to delay. It is agnostic to the direction of the change in set point; rather, you merely need to indicate the PWM output you wish to output next.

Did you try it?