user28834: I think my issue is not fully understanding how the millis() function works;
I am wondering the difference between simply creating a variable such as
long fake_millis  ++ ;  

vs using millis()?

user27157: millis() returns the ACTUAL time milliseconds since the start of the program. Wheter you put a delay, you do multiple tasks, millis() will still return the right time.
The other method that you mentionned will not work if, for example, you add a delay in the program. Then, for more complex tasks that might take more time, your "custom" counter will be very unacurate.
I short, just use millis(). It is easy to use and works great.
P.S. Use an unsigned long instead of a long.

28834: <p>I think my issue is not fully understanding how the <code>millis()</code> function works;</p>

<p>I am wondering the difference between simply creating a variable such as</p>

<pre><code>long fake_millis  ++ ;  
</code></pre>

<p>vs using <code>millis()</code>?</p>
 27157: <p><code>millis()</code> returns the <strong>ACTUAL</strong> time milliseconds since the start of the program. Wheter you put a delay, you do multiple tasks, <code>millis()</code> will still return the right time.</p>

<p>The other method that you mentionned will not work if, for example, you add a delay in the program. Then, for more complex tasks that might take more time, your "custom" counter will be very unacurate.</p>

<p>I short, just use <code>millis()</code>. It is easy to use and works great.</p>

<p>P.S. Use an <code>unsigned long</code> instead of a <code>long</code>.</p>
