@@ -29,7 +29,8 @@ impl Delay {
2929 self . syst
3030 }
3131
32- fn _delay_us ( & mut self , us : u32 ) {
32+ /// Delay using the Cortex-M systick for a certain duration, µs.
33+ pub fn delay_us ( & mut self , us : u32 ) {
3334 let ticks = ( us as u64 ) * ( self . ahb_frequency as u64 ) / 1_000_000 ;
3435
3536 let full_cycles = ticks >> 24 ;
@@ -54,17 +55,22 @@ impl Delay {
5455
5556 self . syst . disable_counter ( ) ;
5657 }
58+
59+ /// Delay using the Cortex-M systick for a certain duration, ms.
60+ pub fn delay_ms ( & mut self , ms : u32 ) {
61+ self . delay_us ( ms * 1_000 ) ;
62+ }
5763}
5864
5965impl DelayMs < u32 > for Delay {
6066 #[ inline]
6167 fn delay_ms ( & mut self , mut ms : u32 ) {
6268 // 4294967 is the highest u32 value which you can multiply by 1000 without overflow
6369 while ms > 4294967 {
64- self . delay_us ( 4294967000u32 ) ;
70+ Delay :: delay_us ( self , 4294967000u32 ) ;
6571 ms -= 4294967 ;
6672 }
67- self . delay_us ( ms * 1_000 ) ;
73+ Delay :: delay_us ( self , ms * 1_000 ) ;
6874 }
6975}
7076
@@ -73,28 +79,28 @@ impl DelayMs<i32> for Delay {
7379 #[ inline( always) ]
7480 fn delay_ms ( & mut self , ms : i32 ) {
7581 assert ! ( ms >= 0 ) ;
76- self . delay_ms ( ms as u32 ) ;
82+ Delay :: delay_ms ( self , ms as u32 ) ;
7783 }
7884}
7985
8086impl DelayMs < u16 > for Delay {
8187 #[ inline( always) ]
8288 fn delay_ms ( & mut self , ms : u16 ) {
83- self . delay_ms ( u32:: from ( ms) ) ;
89+ Delay :: delay_ms ( self , u32:: from ( ms) ) ;
8490 }
8591}
8692
8793impl DelayMs < u8 > for Delay {
8894 #[ inline( always) ]
8995 fn delay_ms ( & mut self , ms : u8 ) {
90- self . delay_ms ( u32:: from ( ms) ) ;
96+ Delay :: delay_ms ( self , u32:: from ( ms) ) ;
9197 }
9298}
9399
94100impl DelayUs < u32 > for Delay {
95101 #[ inline]
96102 fn delay_us ( & mut self , us : u32 ) {
97- self . _delay_us ( us) ;
103+ Delay :: delay_us ( self , us) ;
98104 }
99105}
100106
@@ -103,20 +109,20 @@ impl DelayUs<i32> for Delay {
103109 #[ inline( always) ]
104110 fn delay_us ( & mut self , us : i32 ) {
105111 assert ! ( us >= 0 ) ;
106- self . delay_us ( us as u32 ) ;
112+ Delay :: delay_us ( self , us as u32 ) ;
107113 }
108114}
109115
110116impl DelayUs < u16 > for Delay {
111117 #[ inline( always) ]
112118 fn delay_us ( & mut self , us : u16 ) {
113- self . delay_us ( u32:: from ( us) )
119+ Delay :: delay_us ( self , u32:: from ( us) )
114120 }
115121}
116122
117123impl DelayUs < u8 > for Delay {
118124 #[ inline( always) ]
119125 fn delay_us ( & mut self , us : u8 ) {
120- self . delay_us ( u32:: from ( us) )
126+ Delay :: delay_us ( self , u32:: from ( us) )
121127 }
122128}
0 commit comments