How is it going to be low, if we specified what it should be?
What I don't get is why the author sets the timer value to 0x00 while that has 0 effect
SysTick->VAL = 0; // Clear current value to 0
because in the next statement he enables the systick in the control register:
SysTick->CTRL = 0x5; // Enable SysTick, use processor clock
Which has the following action:
Bit 0 ENABLE: Counter enable
Enables the counter. When ENABLE is set to 1, the counter loads the RELOAD value from the
LOAD register and then counts down. On reaching 0, it sets the COUNTFLAG to 1 and
optionally asserts the SysTick depending on the value of TICKINT. It then loads the RELOAD
value again, and begins counting.
So indeed the while and the value set instructions seem to be useless but there is always a reason for something, just experiment with the code and see what results you get.