1414
1515// ----------------------------------------------------------------------------
1616static 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 ;
1721
1822modm::chrono::milli_clock::time_point
1923modm::chrono::milli_clock::now () noexcept
2024{
21- return time_point{duration{milli_time}};
25+ if (milli_enabled) return time_point{duration{milli_time}};
26+ return modm_platform_milli_now ();
2227}
2328
2429void
@@ -33,15 +38,31 @@ modm_test::chrono::milli_clock::increment(uint32_t milliseconds)
3338 milli_time += milliseconds;
3439}
3540
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+
3653// ----------------------------------------------------------------------------
3754static 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 ;
3859
3960modm::chrono::micro_clock::time_point
4061modm::chrono::micro_clock::now () noexcept
4162{
42- return time_point{duration{micro_time}};
63+ if (micro_enabled) return time_point{duration{micro_time}};
64+ return modm_platform_micro_now ();
4365}
44-
4566void
4667modm_test::chrono::micro_clock::setTime (uint32_t microseconds)
4768{
@@ -53,3 +74,15 @@ modm_test::chrono::micro_clock::increment(uint32_t microseconds)
5374{
5475 micro_time += microseconds;
5576}
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