Implementation of the sleep function
This function come directly from the cortex_m crate It provide a delay in number of instructions. Use it only if you know what you are doing.
For milliseconds, this loop approach is not too far off reality as long as it runs uninterrupted.
This implementation will be more imprecise with lower CPU frequencies and not properly work at all with anything below 5 MHz