@@ -29,8 +29,10 @@ impl Delay {
2929 self . syst
3030 }
3131
32- fn _delay_us ( & mut self , us : u32 ) {
33- let ticks = ( us as u64 ) * ( self . ahb_frequency as u64 ) / 1_000_000 ;
32+ /// Delay using the Cortex-M systick for a certain duration, in µs.
33+ #[ allow( clippy:: missing_inline_in_public_items) ]
34+ pub fn delay_us ( & mut self , us : u32 ) {
35+ let ticks = ( u64:: from ( us) ) * ( u64:: from ( self . ahb_frequency ) ) / 1_000_000 ;
3436
3537 let full_cycles = ticks >> 24 ;
3638 if full_cycles > 0 {
@@ -54,11 +56,10 @@ impl Delay {
5456
5557 self . syst . disable_counter ( ) ;
5658 }
57- }
5859
59- impl DelayMs < u32 > for Delay {
60+ /// Delay using the Cortex-M systick for a certain duration, in ms.
6061 #[ inline]
61- fn delay_ms ( & mut self , mut ms : u32 ) {
62+ pub fn delay_ms ( & mut self , mut ms : u32 ) {
6263 // 4294967 is the highest u32 value which you can multiply by 1000 without overflow
6364 while ms > 4294967 {
6465 self . delay_us ( 4294967000u32 ) ;
@@ -68,33 +69,40 @@ impl DelayMs<u32> for Delay {
6869 }
6970}
7071
72+ impl DelayMs < u32 > for Delay {
73+ #[ inline]
74+ fn delay_ms ( & mut self , ms : u32 ) {
75+ Delay :: delay_ms ( self , ms) ;
76+ }
77+ }
78+
7179// This is a workaround to allow `delay_ms(42)` construction without specifying a type.
7280impl DelayMs < i32 > for Delay {
7381 #[ inline( always) ]
7482 fn delay_ms ( & mut self , ms : i32 ) {
7583 assert ! ( ms >= 0 ) ;
76- self . delay_ms ( ms as u32 ) ;
84+ Delay :: delay_ms ( self , ms as u32 ) ;
7785 }
7886}
7987
8088impl DelayMs < u16 > for Delay {
8189 #[ inline( always) ]
8290 fn delay_ms ( & mut self , ms : u16 ) {
83- self . delay_ms ( u32:: from ( ms) ) ;
91+ Delay :: delay_ms ( self , u32:: from ( ms) ) ;
8492 }
8593}
8694
8795impl DelayMs < u8 > for Delay {
8896 #[ inline( always) ]
8997 fn delay_ms ( & mut self , ms : u8 ) {
90- self . delay_ms ( u32:: from ( ms) ) ;
98+ Delay :: delay_ms ( self , u32:: from ( ms) ) ;
9199 }
92100}
93101
94102impl DelayUs < u32 > for Delay {
95103 #[ inline]
96104 fn delay_us ( & mut self , us : u32 ) {
97- self . _delay_us ( us) ;
105+ Delay :: delay_us ( self , us) ;
98106 }
99107}
100108
@@ -103,20 +111,20 @@ impl DelayUs<i32> for Delay {
103111 #[ inline( always) ]
104112 fn delay_us ( & mut self , us : i32 ) {
105113 assert ! ( us >= 0 ) ;
106- self . delay_us ( us as u32 ) ;
114+ Delay :: delay_us ( self , us as u32 ) ;
107115 }
108116}
109117
110118impl DelayUs < u16 > for Delay {
111119 #[ inline( always) ]
112120 fn delay_us ( & mut self , us : u16 ) {
113- self . delay_us ( u32:: from ( us) )
121+ Delay :: delay_us ( self , u32:: from ( us) )
114122 }
115123}
116124
117125impl DelayUs < u8 > for Delay {
118126 #[ inline( always) ]
119127 fn delay_us ( & mut self , us : u8 ) {
120- self . delay_us ( u32:: from ( us) )
128+ Delay :: delay_us ( self , u32:: from ( us) )
121129 }
122130}
0 commit comments