title: What is the else part in this code mean?
body: <p>I was browsing some embedded programming link 
  <a href="http://www.micromouseonline.com/2016/02/02/systick-configuration-made-easy-on-the-stm32/" rel="nofollow noreferrer" title="here">http://www.micromouseonline.com/2016/02/02/systick-configuration-made-easy-on-the-stm32/</a> </p>
  
  <p><em><sub>[Note that the author of the code at the above link has since updated the code, and the <code>delay_ms()</code> implementation in the article no longer uses the solution shown below.]</sub></em></p>
  
  <p>and ended up with this following code. This is for ARM architecture but basically this is a function which will cause a delay of certain milliseconds passed as a parameter. So I could understand the if condition but why is the else condition necessary here? can someone please explain it to me?</p>
  
  <pre><code>void delay_ms (uint32_t t)
  {
    uint32_t start, end;
    start = millis();//This millis function will return the system clock in 
                     //milliseconds
    end = start + t;
    if (start &lt; end) {
       while ((millis() &gt;= start) &amp;&amp; (millis() &lt; end))
       { // do nothing } 
    }
   else{
       while ((millis() &gt;= start) || (millis() &lt; end)) 
       {
        // do nothing
      };
    }
  }
  </code></pre>