increasing/decreasing analogWrite() value SMOOTHLY

Hello!

My problem in short:
I want the analogWrite() value to rise (when a button is pressed) from 0 to 255 SMOOTHLY, like this: 0...(wait 10 ms)...1...(wait 10 ms)...2...(wait 10 ms)...3...(wait 10 ms)...4.....all the way to 255 automatically.
I dont want the program to get busy, so cant use DELAY, FOR/WHILE loops.
I just cant think of the solution, maybe its simple.
Would appreciate any help.
Thanks for every response!

I just cant think of the solution, maybe its simple.

millis()

See Using millis() for timing. A beginners guide, Several things at the same time and the BlinkWithoutDelay example in the IDE

I´ve actually used millis before. I thought there may be a dedicated function for this..
But at least I know its possible using them...Thanks!