14
14
15
15
// ----------------------------------------------------------------------------
16
16
static uint32_t milli_time{0 };
17
+ static bool milli_enabled{false };
18
+
19
+ modm::chrono::milli_clock::time_point
20
+ modm_platform_milli_now () noexcept ;
17
21
18
22
modm::chrono::milli_clock::time_point
19
23
modm::chrono::milli_clock::now () noexcept
20
24
{
21
- return time_point{duration{milli_time}};
25
+ if (milli_enabled) return time_point{duration{milli_time}};
26
+ return modm_platform_milli_now ();
22
27
}
23
28
24
29
void
@@ -33,15 +38,31 @@ modm_test::chrono::milli_clock::increment(uint32_t milliseconds)
33
38
milli_time += milliseconds;
34
39
}
35
40
41
+ void
42
+ modm_test::chrono::milli_clock::enable ()
43
+ {
44
+ milli_enabled = true ;
45
+ }
46
+
47
+ void
48
+ modm_test::chrono::milli_clock::disable ()
49
+ {
50
+ milli_enabled = false ;
51
+ }
52
+
36
53
// ----------------------------------------------------------------------------
37
54
static uint32_t micro_time{0 };
55
+ static bool micro_enabled{false };
56
+
57
+ modm::chrono::micro_clock::time_point
58
+ modm_platform_micro_now () noexcept ;
38
59
39
60
modm::chrono::micro_clock::time_point
40
61
modm::chrono::micro_clock::now () noexcept
41
62
{
42
- return time_point{duration{micro_time}};
63
+ if (micro_enabled) return time_point{duration{micro_time}};
64
+ return modm_platform_micro_now ();
43
65
}
44
-
45
66
void
46
67
modm_test::chrono::micro_clock::setTime (uint32_t microseconds)
47
68
{
@@ -53,3 +74,15 @@ modm_test::chrono::micro_clock::increment(uint32_t microseconds)
53
74
{
54
75
micro_time += microseconds;
55
76
}
77
+
78
+ void
79
+ modm_test::chrono::micro_clock::enable ()
80
+ {
81
+ micro_enabled = true ;
82
+ }
83
+
84
+ void
85
+ modm_test::chrono::micro_clock::disable ()
86
+ {
87
+ micro_enabled = false ;
88
+ }
0 commit comments