@@ -9,20 +9,32 @@ use libtock::result::TockResult;
9
9
use libtock:: timer;
10
10
use libtock:: timer:: Duration ;
11
11
12
+ const DELAY_MS : usize = 500 ;
13
+
12
14
#[ libtock:: main]
13
15
async fn main ( ) -> TockResult < ( ) > {
14
- const DELAY_MS : usize = 500 ;
15
-
16
16
let mut console = Console :: new ( ) ;
17
17
let mut previous_ticks = None ;
18
18
19
19
for i in 0 .. {
20
- let mut timer_with_callback = timer:: with_callback ( |_, _| { } ) ;
21
- let timer = timer_with_callback. init ( ) ?;
22
- let current_clock = timer. get_current_clock ( ) ?;
23
- let ticks = current_clock. num_ticks ( ) ;
24
- let frequency = timer. clock_frequency ( ) . hz ( ) ;
25
- writeln ! (
20
+ print_now ( & mut console, & mut previous_ticks, i) ?;
21
+ timer:: sleep ( Duration :: from_ms ( DELAY_MS as isize ) ) . await ?;
22
+ }
23
+
24
+ Ok ( ( ) )
25
+ }
26
+
27
+ fn print_now (
28
+ console : & mut Console ,
29
+ previous_ticks : & mut Option < isize > ,
30
+ i : usize ,
31
+ ) -> TockResult < ( ) > {
32
+ let mut timer_with_callback = timer:: with_callback ( |_, _| { } ) ;
33
+ let timer = timer_with_callback. init ( ) ?;
34
+ let current_clock = timer. get_current_clock ( ) ?;
35
+ let ticks = current_clock. num_ticks ( ) ;
36
+ let frequency = timer. clock_frequency ( ) . hz ( ) ;
37
+ writeln ! (
26
38
console,
27
39
"[{}] Waited roughly {:?}. Now is {:?} = {:#010x} ticks ({:?} ticks since last time at {} Hz)" ,
28
40
i,
@@ -32,10 +44,7 @@ async fn main() -> TockResult<()> {
32
44
previous_ticks. map( |previous| ticks - previous) ,
33
45
frequency
34
46
) ?;
35
- previous_ticks = Some ( ticks) ;
36
- timer:: sleep ( Duration :: from_ms ( DELAY_MS as isize ) ) . await ?;
37
- }
38
-
47
+ * previous_ticks = Some ( ticks) ;
39
48
Ok ( ( ) )
40
49
}
41
50
0 commit comments