File tree Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Original file line number Diff line number Diff line change @@ -17,13 +17,18 @@ pub fn bkpt() {
1717
1818/// Blocks the program for *at least* `cycles` CPU cycles.
1919///
20- /// This is implemented in assembly so its execution time is independent of the optimization
21- /// level, however it is dependent on the specific architecture and core configuration.
22- ///
23- /// NOTE that the delay can take much longer if interrupts are serviced during its execution
24- /// and the execution time may vary with other factors. This delay is mainly useful for simple
25- /// timer-less initialization of peripherals if and only if accurate timing is not essential. In
26- /// any other case please use a more accurate method to produce a delay.
20+ /// This is implemented in assembly as a fixed number of iterations of a loop, so that execution
21+ /// time is independent of the optimization level.
22+ ///
23+ /// The loop code is the same for all architectures, however the number of CPU cycles required for
24+ /// one iteration varies substantially between architectures. This means that with a 48MHz CPU
25+ /// clock, a call to `delay(48_000_000)` is guaranteed to take at least 1 second, but for example
26+ /// could take 2 seconds.
27+ ///
28+ /// NOTE that the delay can take much longer if interrupts are serviced during its execution and the
29+ /// execution time may vary with other factors. This delay is mainly useful for simple timer-less
30+ /// initialization of peripherals if and only if accurate timing is not essential. In any other case
31+ /// please use a more accurate method to produce a delay.
2732#[ inline]
2833pub fn delay ( cycles : u32 ) {
2934 call_asm ! ( __delay( cycles: u32 ) ) ;
You can’t perform that action at this time.
0 commit comments