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() {
17
17
18
18
/// Blocks the program for *at least* `cycles` CPU cycles.
19
19
///
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.
27
32
#[ inline]
28
33
pub fn delay ( cycles : u32 ) {
29
34
call_asm ! ( __delay( cycles: u32 ) ) ;
You can’t perform that action at this time.
0 commit comments