@@ -7,7 +7,7 @@ use embedded_hal::{
77 blocking:: delay:: { DelayMs , DelayUs } ,
88 timer:: { Cancel , CountDown , Periodic } ,
99} ;
10- use fugit:: { ExtU32 , HertzU32 as Hertz , TimerDurationU32 } ;
10+ use fugit:: { ExtU32Ceil , HertzU32 as Hertz , TimerDurationU32 } ;
1111use void:: Void ;
1212
1313use super :: {
@@ -16,36 +16,42 @@ use super::{
1616} ;
1717
1818impl DelayUs < u32 > for SysDelay {
19+ #[ inline]
1920 fn delay_us ( & mut self , us : u32 ) {
20- self . delay ( us. micros ( ) )
21+ self . delay ( us. micros_at_least ( ) )
2122 }
2223}
2324
2425impl DelayMs < u32 > for SysDelay {
26+ #[ inline]
2527 fn delay_ms ( & mut self , ms : u32 ) {
26- self . delay_us ( ms * 1_000 ) ;
28+ self . delay ( ms. millis_at_least ( ) ) ;
2729 }
2830}
2931
3032impl DelayUs < u16 > for SysDelay {
33+ #[ inline]
3134 fn delay_us ( & mut self , us : u16 ) {
3235 self . delay_us ( us as u32 )
3336 }
3437}
3538
3639impl DelayMs < u16 > for SysDelay {
40+ #[ inline]
3741 fn delay_ms ( & mut self , ms : u16 ) {
3842 self . delay_ms ( ms as u32 ) ;
3943 }
4044}
4145
4246impl DelayUs < u8 > for SysDelay {
47+ #[ inline]
4348 fn delay_us ( & mut self , us : u8 ) {
4449 self . delay_us ( us as u32 )
4550 }
4651}
4752
4853impl DelayMs < u8 > for SysDelay {
54+ #[ inline]
4955 fn delay_ms ( & mut self , ms : u8 ) {
5056 self . delay_ms ( ms as u32 ) ;
5157 }
@@ -198,40 +204,40 @@ where
198204impl < TIM : Instance , const FREQ : u32 > DelayUs < u32 > for Delay < TIM , FREQ > {
199205 /// Sleep for `us` microseconds
200206 fn delay_us ( & mut self , us : u32 ) {
201- self . delay ( us. micros ( ) )
207+ self . delay ( us. micros_at_least ( ) )
202208 }
203209}
204210
205211impl < TIM : Instance , const FREQ : u32 > DelayMs < u32 > for Delay < TIM , FREQ > {
206212 /// Sleep for `ms` milliseconds
207213 fn delay_ms ( & mut self , ms : u32 ) {
208- self . delay ( ms. millis ( ) )
214+ self . delay ( ms. millis_at_least ( ) )
209215 }
210216}
211217
212218impl < TIM : Instance , const FREQ : u32 > DelayUs < u16 > for Delay < TIM , FREQ > {
213219 /// Sleep for `us` microseconds
214220 fn delay_us ( & mut self , us : u16 ) {
215- self . delay ( ( us as u32 ) . micros ( ) )
221+ self . delay ( ( us as u32 ) . micros_at_least ( ) )
216222 }
217223}
218224impl < TIM : Instance , const FREQ : u32 > DelayMs < u16 > for Delay < TIM , FREQ > {
219225 /// Sleep for `ms` milliseconds
220226 fn delay_ms ( & mut self , ms : u16 ) {
221- self . delay ( ( ms as u32 ) . millis ( ) )
227+ self . delay ( ( ms as u32 ) . millis_at_least ( ) )
222228 }
223229}
224230
225231impl < TIM : Instance , const FREQ : u32 > DelayUs < u8 > for Delay < TIM , FREQ > {
226232 /// Sleep for `us` microseconds
227233 fn delay_us ( & mut self , us : u8 ) {
228- self . delay ( ( us as u32 ) . micros ( ) )
234+ self . delay ( ( us as u32 ) . micros_at_least ( ) )
229235 }
230236}
231237impl < TIM : Instance , const FREQ : u32 > DelayMs < u8 > for Delay < TIM , FREQ > {
232238 /// Sleep for `ms` milliseconds
233239 fn delay_ms ( & mut self , ms : u8 ) {
234- self . delay ( ( ms as u32 ) . millis ( ) )
240+ self . delay ( ( ms as u32 ) . millis_at_least ( ) )
235241 }
236242}
237243
0 commit comments