@@ -7,7 +7,7 @@ use embedded_hal::{
7
7
blocking:: delay:: { DelayMs , DelayUs } ,
8
8
timer:: { Cancel , CountDown , Periodic } ,
9
9
} ;
10
- use fugit:: { ExtU32 , HertzU32 as Hertz , TimerDurationU32 } ;
10
+ use fugit:: { ExtU32Ceil , HertzU32 as Hertz , TimerDurationU32 } ;
11
11
use void:: Void ;
12
12
13
13
use super :: {
@@ -16,36 +16,42 @@ use super::{
16
16
} ;
17
17
18
18
impl DelayUs < u32 > for SysDelay {
19
+ #[ inline]
19
20
fn delay_us ( & mut self , us : u32 ) {
20
- self . delay ( us. micros ( ) )
21
+ self . delay ( us. micros_at_least ( ) )
21
22
}
22
23
}
23
24
24
25
impl DelayMs < u32 > for SysDelay {
26
+ #[ inline]
25
27
fn delay_ms ( & mut self , ms : u32 ) {
26
- self . delay_us ( ms * 1_000 ) ;
28
+ self . delay ( ms. millis_at_least ( ) ) ;
27
29
}
28
30
}
29
31
30
32
impl DelayUs < u16 > for SysDelay {
33
+ #[ inline]
31
34
fn delay_us ( & mut self , us : u16 ) {
32
35
self . delay_us ( us as u32 )
33
36
}
34
37
}
35
38
36
39
impl DelayMs < u16 > for SysDelay {
40
+ #[ inline]
37
41
fn delay_ms ( & mut self , ms : u16 ) {
38
42
self . delay_ms ( ms as u32 ) ;
39
43
}
40
44
}
41
45
42
46
impl DelayUs < u8 > for SysDelay {
47
+ #[ inline]
43
48
fn delay_us ( & mut self , us : u8 ) {
44
49
self . delay_us ( us as u32 )
45
50
}
46
51
}
47
52
48
53
impl DelayMs < u8 > for SysDelay {
54
+ #[ inline]
49
55
fn delay_ms ( & mut self , ms : u8 ) {
50
56
self . delay_ms ( ms as u32 ) ;
51
57
}
@@ -198,40 +204,40 @@ where
198
204
impl < TIM : Instance , const FREQ : u32 > DelayUs < u32 > for Delay < TIM , FREQ > {
199
205
/// Sleep for `us` microseconds
200
206
fn delay_us ( & mut self , us : u32 ) {
201
- self . delay ( us. micros ( ) )
207
+ self . delay ( us. micros_at_least ( ) )
202
208
}
203
209
}
204
210
205
211
impl < TIM : Instance , const FREQ : u32 > DelayMs < u32 > for Delay < TIM , FREQ > {
206
212
/// Sleep for `ms` milliseconds
207
213
fn delay_ms ( & mut self , ms : u32 ) {
208
- self . delay ( ms. millis ( ) )
214
+ self . delay ( ms. millis_at_least ( ) )
209
215
}
210
216
}
211
217
212
218
impl < TIM : Instance , const FREQ : u32 > DelayUs < u16 > for Delay < TIM , FREQ > {
213
219
/// Sleep for `us` microseconds
214
220
fn delay_us ( & mut self , us : u16 ) {
215
- self . delay ( ( us as u32 ) . micros ( ) )
221
+ self . delay ( ( us as u32 ) . micros_at_least ( ) )
216
222
}
217
223
}
218
224
impl < TIM : Instance , const FREQ : u32 > DelayMs < u16 > for Delay < TIM , FREQ > {
219
225
/// Sleep for `ms` milliseconds
220
226
fn delay_ms ( & mut self , ms : u16 ) {
221
- self . delay ( ( ms as u32 ) . millis ( ) )
227
+ self . delay ( ( ms as u32 ) . millis_at_least ( ) )
222
228
}
223
229
}
224
230
225
231
impl < TIM : Instance , const FREQ : u32 > DelayUs < u8 > for Delay < TIM , FREQ > {
226
232
/// Sleep for `us` microseconds
227
233
fn delay_us ( & mut self , us : u8 ) {
228
- self . delay ( ( us as u32 ) . micros ( ) )
234
+ self . delay ( ( us as u32 ) . micros_at_least ( ) )
229
235
}
230
236
}
231
237
impl < TIM : Instance , const FREQ : u32 > DelayMs < u8 > for Delay < TIM , FREQ > {
232
238
/// Sleep for `ms` milliseconds
233
239
fn delay_ms ( & mut self , ms : u8 ) {
234
- self . delay ( ( ms as u32 ) . millis ( ) )
240
+ self . delay ( ( ms as u32 ) . millis_at_least ( ) )
235
241
}
236
242
}
237
243
0 commit comments